Calc フォームのボタンから自作マクロを実行する
ボタンを押したらメッセージボックスが出るだけの簡単な奴。
成果物
手順
- マクロを作成する
- フォームのボタンを作成する
- 実行する
1. マクロを作成する
- メニュー→
ツール→マクロ→マクロの管理→LibreOffice Basic - ダイアログのツリーにある
マイマクロ→Standardをクリックする 新規作成ボタンをクリックする- 任意ファイル名を入力する:
HelloWorld - ダイアログのツリーにある
マイマクロ→Standard→HelloWorldをクリックする 編集ボタンをクリックする- 以下コードを貼り付けて保存する
Sub HelloMsgBox MsgBox "Hello world !!" & chr(10) & "こんにちは世界!" End Sub

2. フォームのボタンを作成する
2-1. UIを作成する
- メニュー→
表示→ツールバー→フォームコントロールにチェックする フォームコントロールツールボックスにあるデザインモードをクリックしてONにするフォームコントロールツールボックスにあるボタンをクリックする- 適当なセル領域でドラッグ&ドロップする
- ボタンが作成される
2-2. タイトルを設定する
- 作成したフォームのボタンを右クリックする
コントロールをクリックする全般タブをクリックする全般タブをクリックするタイトルにHello MsgBoxを入力する

2-3. イベントとマクロを紐付ける
イベントタブをクリックするマウスボタンを押した時の横にあるボタンをクリックする- ダイアログの
マクロボタンをクリックする マイマクロ→Standard→HelloWorld→HelloMsgBoxをクリックするOKボタンをクリックする

3. 実行する
フォームコントロールツールボックスにあるデザインモードをクリックしてOFFにする- 作成したフォームのボタンをクリックする
- メッセージボックスが表示される

所感
これで好きなマクロをボタン押下時に実行できる。
本当はセル変更時に実行したいんだけど、そんなイベントはない……。
Table ControlというグリッドUIがあるらしいのだが、バージョンが古いせいか私の環境には存在しなかった……。
やりたいことがことごとくできない。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- LibreOffice 6.1.5.2 ※ ※ Help
$ uname -a Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux