BASIC限定。実行したらエラー……。使い道はUIの操作に対応するAPI名の調査くらいか。
手順
1. マクロの記録を有効にする ¶
- LibreOffice Calc を起動する
- メニューの
ツール→オプションをクリックする

- ダイアログ左側にあるツリーから
LibreOffice→詳細を展開する - ダイアログ右側にある
マクロの記録を有効にするチェックボックスをONにする OKボタンをクリックする
2. マクロを記録する ¶
- メニューの
ツール→マクロ→マクロの記録をクリックする
3. 操作する ¶
記録したい操作を行う。何でもいいが、ここでは以下のようにした。
- セル
A1に10を入力する - セル
B1に20を入力する - セル
C1に=A1+B1を入力する

4. 記録の終了 ¶
- 「記録の終了」をクリックする

5. マクロを保存する ¶
新規モジュールボタンをクリックするModule2が作成されるのでクリックする保存ボタンをクリックする

6. マクロを閲覧する ¶
- メニューの
ツール→マクロ→マクロの編集をクリックする - 画面左側のツリーから
マイマクロ&ダイアログ→Standard→Module2をクリックする

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 ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "StringName" args1(0).Value = "1" dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1()) rem ---------------------------------------------------------------------- dim args2(0) as new com.sun.star.beans.PropertyValue args2(0).Name = "StringName" args2(0).Value = "2" dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2()) rem ---------------------------------------------------------------------- dim args3(0) as new com.sun.star.beans.PropertyValue args3(0).Name = "StringName" args3(0).Value = "=A1+B1" dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3()) rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()) end sub
7. マクロを実行する ¶
- Calcの
A1,B1,C1に入力した値を削除する(セルを選択してDelキー押下する) - メニューの
ツール→マクロ→マクロの実行をクリックする - ダイアログのツリーから
マイマクロ→Standard→Module2をクリックする 実行ボタンをクリックする- Calc画面にフォーカスする
あれ、なんかエラーなんですけど……。

記録したBASICコードをよく見てみると、どのセルに代入するかが書かれていない。ダメじゃん!
所感
「マクロの記録」は思った以上に使えなかった。再現できないコードを吐き出して何になるんだよ……。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release 学習まとめ
- LibreOffice 6.1.5.2 ※
$ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux