機能はエクセル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 subLibreOffice流のマクロの記述方法がわかる。学べる。
■あとがき
エクセルVBAの可視セルPasteがLibreOffice Basicでうまく動かなかったときに
「マクロの記録」でLibreOffice流のPasteを調るのに使った。
以上。