openoffice 4.1.5
windows10
で開発をしております。
VBscriptからcalc内の文字列を置換したいのですが、
SheetオブジェクトからcreateReplaceDiscriptor()の呼び出し時に
「オブジェクトでサポートされていないプロパティまたはメソッドです。」
とエラーが発生します。
ソースコードは下記です。
calcを起動し、特定のセルに「テスト」と文字を格納することは出来ているので、
sheetのオブジェクトは正常に取得出来ていると思うのですが、
先にも書いた通り「ReplaceDiscriptor」の取得が出来ません。
下記の記事が似た事象なのですが原因が違いそうです。
https://forum.openoffice.org/en/forum/v ... 12#p331147
分かる方がいましたらご教授いただければ幸いです。
コード: 全て選択
' param : tgtCalcFile → calcファイルパス
function replaceCalc(tgtCalcFile)
    Dim OSM, oDesktop, dummyArray
    Set OSM = CreateObject("com.sun.star.ServiceManager")
    Set oDesktop = OSM.createInstance("com.sun.star.frame.Desktop")
    Dim Result() 'As Object
    dummyArray = Result
    Dim oCalcDoc, oSheet, oSerch
    Set oCalcDoc = oDesktop.loadComponentFromURL("file:///"&tgtCalcFile,"_blank", 0, dummyArray)
    Set oSheet = oCalcDoc.getSheets().getByIndex(0)
	'デバッグ用:対象のシートに「テスト」と表示される。
    oSheet.getCellByPosition(1,1).String = "テスト"
    oSerch = oSheet.createReplaceDescriptor() 'ここが動かない。
    oSerch.SearchString = "%置換前文字列%"
    oSerch.ReplaceString = "置換後文字列"
    oSheet.replaceAll(oSerch)
    Set OSM = Nothing
end function