オープンソースの表計算ソフトウェア「LibreOffice calc」でマクロを使う手順を簡単にまとめてみます。
マクロの使い方
まずは、マクロを作成する手順です。
LibreOfficeを起動して、メニューバーから
「ツール」 » 「マクロ」 » 「マクロの管理」 » 「LibreOffice Basic(B)...」
を実行します。
上のようなダイアログが表示されたら、「新規作成」ボタンをクリックします。名前の入力が必要になりますので、適当な名前を入力してください。
マクロを編集するウィンドウが表示されますので、後はここに必要なコードを書いていく形になります。
Hello world!
おなじみの「Hello world!」を表示してみます。
Sub Main
を次のように修正します。
Sub Main
MsgBox "Hello world!"
End Sub
マクロを実行するにはキーボードからF5を入力します。
※マクロが実行できない場合は、マクロのセキュリティを参考にしてみてください。
フォームボタン
次は画面にボタンを追加して、ボタンをクリックしたときにメッセージを表示するようにしてみます。
「表示」 » 「ツールバー」 » 「フォームコントロール(G)」
フォームコントロールが表示されます。
ボタンを選択してLibreOffice Calcの適当な位置にボタンを配置します。
ボタンをクリックした際にマクロを実行するには、ボタンを右クリックして、コントロールを選択し、
「イベント」 » 「実行時」
の横にある「…」のボタンをクリックし、「マクロ」をクリックします。
マクロセレクターで実行したいマクロを選択して、「OK」とします。
とりあえず今回は上で作成したMain
というマクロを選択します。
これで作業完了ですが、このままではボタンが押せなくなっています。フォームコントロールからデザインモードを「オフ」に設定することでボタンが押せるようになります。
ボタンをクリックすると「Hello world!」と表示されるようになったと思います。
シートとセルの編集
LibreOffice Calcでマクロを使う場合、シートやセルに入力された内容を取得し、それを元に計算などをして、結果をセルに書き込むような操作が多いのではないでしょうか?
そこで、シートとセルの編集方法についてまとめておきたいと思います。
シートの選択
インデックス0
番のシートを選択
oSheet = ThisComponent.Sheets.getByIndex(0)
Sheet1
という名称のシートを選択
oSheet = ThisComponent.Sheets.getByName("Sheet1")
セルの選択
A1
のセルを選択
oCell = oSheet.getCellRangeByName("A1")
値の読み書き
数値として読み取り
value = oCell.Value
数値として書き込み
oCell.value = 12345
文字列として読み取り
string = oCell.String
文字列として書き込み
oCell.String = "あいうえお"
サンプル
A1
とB1
の数値を読み取りその和をC1
に入力、A2
とB2
の文字列を読み取りそれを連結した文字列をC2
に入力するサンプルです。
サンプルはSub Main
を書き換えて作成していますので、ボタンをクリックすることで実行できます。なお、サンプル実行の前にはA1
とB1
に数字を、A2
とB2
に文字を入力してから実行してください。
Sub Main
oSheet = ThisComponent.Sheets.getByIndex(0)
a1 = oSheet.getCellRangeByName("A1").Value
b1 = oSheet.getCellRangeByName("B1").Value
oSheet.getCellRangeByName("C1").Value = a1 + b1
a2 = oSheet.getCellRangeByName("A2").String
b2 = oSheet.getCellRangeByName("B2").String
oSheet.getCellRangeByName("C2").String = a2 & b2
End Sub
マクロのセキュリティ
マイクロソフトオフィスなどでも同様と思いますが、マクロの実行はセキュリティ上の危険もあるため、自動で実行しないよう設定されている場合があります。
マクロの実行を許可するには
「ツール」 » 「オプション」
から、「セキュリティ」のタブを開いて「マクロのセキュリティ」を「中(信頼されていないソースからのマクロの実行前には、確認が必要です。)」あたりに設定してください。
ファイルを開く際にセキュリティ警告が表示されますので、信頼できるファイルの場合は「マクロの有効化」を選ぶとマクロが動作するようになります。
おすすめ書籍
- LibreOffice/OpenOffice.org Basicハンドブック
- はじめてのLibreOffice―無料で使える「統合オフィスソフト」を使いこなす!
- 実務で使えるLibreOffice
- OpenOfficeマクロプログラミング―「Writer」「Calc」「Base」…OOoをBasicで便利に!
リンク
- ホーム » LibreOffice : 自由なオープンソースのオフィススイート
https://ja.libreoffice.org/ - OpenOffice.org BASIC プログラミングガイド – Apache OpenOffice Wiki
https://wiki.openoffice.org/wiki/JA/Documentation/BASIC_Guide - OpenOffice.org Basic – Wikibooks
http://ja.wikibooks.org/wiki/OpenOffice.org_Basic
こちらの記事はWindowsの使い方というサイトで公開していた内容です。
使用していたレンタルサーバーのサービス終了に伴い移転しました。