やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Calc フォームのボタンから自作マクロを実行する

 ボタンを押したらメッセージボックスが出るだけの簡単な奴。

成果物

手順

  1. マクロを作成する
  2. フォームのボタンを作成する
  3. 実行する

1. マクロを作成する

  1. メニュー→ツールマクロマクロの管理LibreOffice Basic
  2. ダイアログのツリーにあるマイマクロStandardをクリックする
  3. 新規作成ボタンをクリックする
  4. 任意ファイル名を入力する: HelloWorld
  5. ダイアログのツリーにあるマイマクロStandardHelloWorldをクリックする
  6. 編集ボタンをクリックする
  7. 以下コードを貼り付けて保存する
Sub HelloMsgBox
    MsgBox "Hello world !!" & chr(10) & "こんにちは世界!"
End Sub

0

2. フォームのボタンを作成する

2-1. UIを作成する

  1. メニュー→表示ツールバーフォームコントロールにチェックする
  2. フォームコントロールツールボックスにあるデザインモードをクリックしてONにする
  3. フォームコントロールツールボックスにあるボタンをクリックする
  4. 適当なセル領域でドラッグ&ドロップする
  5. ボタンが作成される

2-2. タイトルを設定する

  1. 作成したフォームのボタンを右クリックする
  2. コントロールをクリックする
  3. 全般タブをクリックする
  4. 全般タブをクリックする
  5. タイトルHello MsgBoxを入力する

1

2-3. イベントとマクロを紐付ける

  1. イベントタブをクリックする
  2. マウスボタンを押した時の横にあるボタンをクリックする
  3. ダイアログのマクロボタンをクリックする
  4. マイマクロStandardHelloWorldHelloMsgBoxをクリックする
  5. OKボタンをクリックする

2 3

3. 実行する

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

4 5

所感

 これで好きなマクロをボタン押下時に実行できる。

 本当はセル変更時に実行したいんだけど、そんなイベントはない……。

 Table ControlというグリッドUIがあるらしいのだが、バージョンが古いせいか私の環境には存在しなかった……。

 やりたいことがことごとくできない。

対象環境

$ uname -a
Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux