Top > OOoBasic > Calc > OLEObj

OLE オブジェクト Edit

Calc 上へ OLE オブジェクトを挿入します。ここで取り上げるのは,埋め込まれるオブジェクトが OOo の場合のみです。

OLE オブジェクトはドローページ上に存在し,ドローオブジェクトです。OLE オブジェクト用のドローシェープがあり com.sun.star.drawing.OLE2Shape です。このオブジェクトを作成してドローページに追加,設定を行うことで OLE オブジェクトを挿入することが出来ます。

以下では Calc ドキュメント上へ Writer ドキュメントを OLE シェイプとして挿入します。

ドローページへ追加するドローシェイプオブジェクトを作成,追加,サイズと位置の設定を行う部分までは図形描写と同じです。異なる部分は OLE オブジェクトの Class ID を指定する必要がある部分です。

Sub Main
Dim oDoc As Object
Dim oDrawPage As Object
Dim oEmbWriter As Object
Dim oEmbDoc As Object
Dim aPosition As New com.sun.star.awt.Point
Dim aSize As New com.sun.star.awt.Size

  oDoc = ThisComponent
  oDrawPage = oDoc.getDrawPages().getByIndex(0)
  oEmbWriter = oDoc.createInstance("com.sun.star.drawing.OLE2Shape")
  
  oDrawPage.add(oEmbWriter)
  
  aPosition.X = 100
  aPosition.Y = 100
  aSize.Width = 10000
  aSize.Height = 4000
  
  oEmbWriter.setPosition(aPosition)
  oEmbWriter.setSize(aSize)
  oEmbWriter.CLSID = "8bc6b165-b1b2-4edd-aa47-dae2ee689dd6"
  oEmbDoc = oEmbWriter.Model
  
  oEmbDoc.getText().setString("OLE Embedded Writer")
End Sub

OLE シェープのプロパティ CLSID にクラス ID を設定します。ここで使用しているのは writer のクラスID にあたります。

OLE オブジェクトモデル Edit

OLE シェープとして挿入されているドキュメントのモデル (ドキュメントオブジェクトに相当) は OLE シェープの Model プロパティで取得できます。

CLSID Edit

writer8bc6b165-b1b2-4edd-aa47-dae2ee689dd6
chart12dcae26-281f-416f-a234-c3086127382e
calc47bbb4cb-ce4c-4e80-a591-42d9ae74950f
impress9176e48a-637a-4d1f-803b-99d9bfac1047
draw4bab8970-8a3b-45b3-991c-cbeeac6bd5e3
math078b7aba-54fc-457f-8551-6147e776a997

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes