機能はエクセルVBAの「マクロの記録」とほぼ同じ。
表計算ソフトで実施した動作をマクロ記述として保存する。
■LibreOffice-Calc-マクロの記録追加方法
LibreOffice Calcで「ツール」⇒「オプション」選択。「LibreOffice」⇒「詳細」⇒「マクロの記録を有効にする」にチェック⇒「OK」選択。
これで「マクロの記録」が使える。
■LibreOffice-Calc-マクロの記録使用方法
LibreOffice Calcで「ツール」⇒「マクロ」⇒「マクロの記録」選択。今回は試しに「Sheet1」のデータを「Sheet2」にコピペした。
⇒「記録の終了」おす。
ひらいているodsファイルのModule格納場所を選択⇒「新規モジュール」選択。
名前はデフォルトの「Module3」で「OK」選択。
「保存」選択⇒上書きしますか?「はい」選択。
LibreOffice Calcで「ツール」⇒「マクロ」⇒「マクロの編集」選択。
「Module3」のsub「Main」にマクロが保存されている。
REM ***** BASIC *****
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
LibreOffice流のマクロの記述方法がわかる。学べる。■あとがき
エクセルVBAの可視セルPasteがLibreOffice Basicでうまく動かなかったときに
「マクロの記録」でLibreOffice流のPasteを調るのに使った。
以上。









