Top > OOobbs2 > 129

OOobbs2/129 Edit

  • サマリ: OLEオブジェクト編集状態でコマンドを実行する方法
  • 環境: Writer
  • 状態: 解決
  • 投稿者: セルダン?
  • 投稿日: 2008-08-18 (月) 11:05:13

質問 Edit

WriterのCalcのOLEオブジェクトが編集状態のときに、この編集されている側のCalcのコマンドを実行するにはどのようにすればよいのでしょうか?

回答 Edit

  • 編集状態であれば OLE オブジェクトの Calc 側のコントローラがドキュメントモデルから取得できます。そこからコマンドが実行できます。 -- はにゃ? 2008-08-18 (月) 13:03:09
Sub ole_cmd_1
 oDoc = ThisComponent
 oEmbeded = oDoc.getEmbeddedObjects().getByIndex(0)
 
 oController = oEmbeded.Model.getCurrentController()
 If NOT IsNull(oController) Then
   aURL = CreateUnoStruct("com.sun.star.util.URL")
   aURL.Complete = ".uno:Paste"
   CreateUnoService("com.sun.star.util.URLTransformer")._
       parseStrict(aURL)
   oDisp = oController.queryDispatch(aURL, "_self", 0)
   If NOT IsNull(oDisp) Then
     oDisp.dispatch(aURL, Array())
   End If
 End If
End Sub

編集状態でない場合には getCurrentController メソッドの返り値は Null になります。

OLE オブジェクトとして挿入されたドキュメントは別のドキュメントなのでそのコードの置いてある場所にも注意が必要です。上記のコードは親ドキュメント中のライブラリに入れて実行するためのものです。

  • ありがとうございました。実行することが出来ました。 -- セルダン 2008-08-18 (月) 15:20:31

感想,コメント,メモ Edit



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