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のマクロは直感的でないというか、やりたいことが素直には出来ない感じがする。