ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

OpenOffceのcalcで指定したセルへカーソルを移動するマクロ

OpenOfficeのcalcで指定したセルへカーソルを移動させるマクロ。

oAddrConv = ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
aAddr = CreateUnoStruct("com.sun.star.table.CellAddress")
aAddr.Row = 0 '対象の行番号
aAddr.Column = 0 ’対象の列番号
oAddrConv.Address = aAddr

Dim oDispatcher as Object
Dim oProp(0) as new com.sun.star.beans.PropertyValue
oFrame = ThisComponent.getCurrentController().getFrame()
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oProp(0).Name = "ToPoint"
oProp(0).Value = oAddrConv.UserInterfaceRepresentation 
oDispatcher.executeDispatch(oFrame, ".uno:GoToCell", "", 0, oProp())

対象となるマクロの文字列での表現を作成して、それを使ってディスパッチャーでカーソル移動を指示している。
ただカーソルを移動させたいだけなのに、だいぶ苦労した。
実はもっと簡単にやる方法があるのかもしれないが、とりあえず、ネットで検索して見つかった方法で実装してみた。
OpenOfficeのマクロは直感的でないというか、やりたいことが素直には出来ない感じがする。