【VBScript】VBSでCalc内の文字列を置換したい

マクロの作成、スクリプトの作成、APIの使い方
返信する
三ツ星みかん
記事: 1
登録日時: 5月 24, 2021, 3:20 pm

【VBScript】VBSでCalc内の文字列を置換したい

投稿記事 by 三ツ星みかん »

皆様 お世話になります。

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
OpenOffice 4.1.5
windows10
返信する

“マクロと UNO API”に戻る