◆ [VBScript] Excelマクロに、ドロップされたファイルのパスを渡す をOpenOffice.orgでの実行… その2
どーもボキです。

OOo(OpenOffice.org)のマクロを外部プログラムから実行する場合、本来はgetScriptでマクロを取得するみたい。
だが、ココに書いてある通り、getScrptメソッドを実行すると、メソッドが存在しないエラーが発生する。

VBScript、Delphiで同様のコードを試したが、
どちらもgetScriptメソッド実行のタイミングでエラーが発生した。

当然だが、記述言語に関係なくマクロが取得できないみたいだ。

getScriptでマクロを取得しなければ、引数付きでマクロを起動できない。
どうやってマクロを取得したらいいんだろう?

VBScript
Dim oSrv,oDsk,oDoc,oScP,oScr
Dim dummy()

' OpenOffice.orgに接続
Set oSrv = CreateObject("com.sun.star.ServiceManager")
Set oDsk = oSrv.createInstance("com.sun.star.frame.Desktop")

' ファイルを開く
Set oDoc = oDsk.loadComponentFromURL("file:///D:/Macro.xls", "_blank", 0, dummy)

' Module1.Testを取得
Set oScP = oDoc.getScriptProvider()
Set oScr = oScP.getScript("vnd.sun.star.script:Standard.Module1.Test?language=Basic&location=document")

' Testマクロを実行
oScr.invoke dummy, dummy, dummy
a0021757_23343346.gif


Delphi
uses
ComObj, Variants;

var
oSrv,oDsk,oDoc,oScP,oScr,dummy : Variant;

begin
dummy := VarArrayCreate([0,-1],varVariant);

// OpenOffice.orgに接続
oSrv := CreateOLEObject('com.sun.star.ServiceManager');
oDsk := oSrv.CreateInstance('com.sun.star.frame.Desktop');

// ファイルを開く
oDoc := oDsk.LoadComponentFromURL('file:///D:/Macro.xls','_blank',0,dummy);

// Module1.Testを取得
oScP := oDoc.getScriptProvider;
oScr := oScP.getScript('vnd.sun.star.script:Standard.Module1.Test?language=Basic&location=document');

// Testマクロを実行
oScr.invoke(dummy,dummy,dummy);
a0021757_23345239.gif

[PR]
by yozda | 2009-06-16 23:35 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/8419681
トラックバックする(会員専用) [ヘルプ]
<< [日記] 晄太郎 なぞなぞ [洋画] WALL・E/ウォーリー >>