LibreOffice(リブレオフィス)
をインストールしたことは、前回の記事のとおりです。
⇒ その記事は、こちらをご覧ください。
そして、この1週間ずっとリブレオフィスの中の表計算ソフトCalc (カルク)
で、VBA(Visual Basic for Applications )を試していました。VBAとは、Microsoft製のマクロ言語です。
![](https://blogimg.goo.ne.jp/user_image/06/9a/65bf05e282320e4f898794ba83c20d6b.jpg)
リブレオフィスにもマクロ機能があるのはもちろんですが、マクロを組むために、実はVBAが利用できるんですねぇ。
私め、つい最近まで知らなかったのです。
リブレオフィスでマクロを作成するための手順は、次のとおりです。
1 リブレオフィスのカルクを開く
2 「ツール」-「マクロ-マクロの管理」-「LibreOffice Basic」
とたどり、「LibreOffice Basic マクロ」というウィンドウを表示させる
3 「マクロの記録先」の中で、「無題1」というファイルを選択する
4 Newボタンをクリックし「新しいモジュール」というウィンドウで
適当な名前のモジュールを作る
(自動的に入る「Module1」の名前でOK)
5 マクロエディタが開くので、ここでマクロのコードを記述
2 「ツール」-「マクロ-マクロの管理」-「LibreOffice Basic」
とたどり、「LibreOffice Basic マクロ」というウィンドウを表示させる
3 「マクロの記録先」の中で、「無題1」というファイルを選択する
4 Newボタンをクリックし「新しいモジュール」というウィンドウで
適当な名前のモジュールを作る
(自動的に入る「Module1」の名前でOK)
5 マクロエディタが開くので、ここでマクロのコードを記述
リブレオフィスでマクロを記述するために、次の4つの言語が対応しています。
1 LibreOffice Basic
2 BeanShell
3 JavaScript
4 Python
この中には、MicrosoftのVBAはありません。
そうであるならば、
リブレオフィスでVBAによるマクロ記述ができないのではないか
VBAを使うには、いったいどうすればよいのか
とも思えてきます。
答えは・・・・、「VBAは利用できる。」です。
VBAを利用するためには、次のようにします。
【第1】オプション指定
上記の「リブレオフィスでマクロを作成するための手順」で開いたマクロエディタの冒頭に次の一文を記述します。
Option VBASupport 1
オプションの「1」を指定することで、VBAサポートが有効になり、
オプションの「0」の指定で、VBAサポートが無効になります。
![](https://blogimg.goo.ne.jp/user_image/37/ae/fadbf96f3d928f509ba281809087b297.jpg)
【第2】セキュリティ設定
マクロ記述後にファイルを保存して、再度開くとセキュリティの関係でマクロが無効にされた状態になっています。
そこで、マクロ実行のセキュリティレベルを変更します。
「ツール」-「オプション」-「セキュリティ」とすすみ、
「マクロセキュリティ」ボタンを押して出てくる画面で、
「セキュリティレベル」を「中」に設定します。
こうしておくことで、ファイルを開く都度、マクロ有効化、無効化を選択できるようになります(怪しいファイルは、むやみに有効化しない)。
【第3】保存時の拡張子
マクロを記述したファイルを保存するとき、拡張子は「.ods」とします。
これでないと、マクロが使えません。
拡張子が「.ods」だから、MS_Excelを使って開くことはできない(はずです。)。
【第4】Javaインストールの指示は無視
マクロを実行するために、ワークシート上にコマンドボタンを配置し、マクロを登録することになります。
このとき、「Javaをインストールせよ」との指示が出ますが、その指示は無視します。
「Java」はなくてもマクロは動きます。
ボタンにマクロを登録するときだけに出る警告のようです。
以上で、VBAで記述したマクロが動きます。
VBAが使えるといっても、リブレオフィスが本来対応している言語ではないのだから、
使えるのは、VBAの機能のうちの、ごく一部だろう、
互換性は限定的なものだろう、
というのが、私の最初の憶測でした。あくまでも便宜的な、オプションに過ぎないと思っていたのです。互換性は限定的なものだろう、
ところがですねぇ、この1週間、いろいろと試したところ、VBAのほぼすべてが使えることが分かったのです。
各種オブジェクトやそのプロパティ、メソッドはもちろん、制御構造も、それから各種の変数も、ほぼ制限なく使えるのに、ビックリしました。
制限があるように見えても、代替機能でなんとかなります。
これは、すんごいことですよ。
というのは、リブレオフィスの独自言語やその文法を覚える必要がない、このことを意味するわけです。
使い慣れたMicrosoftのVBAを、そのまま使えるのですから。
ただし、マクロコードを打ち込むエディタが、VBA専用ではないから、不便に感じることはあります。例えば、コード記述中にスペルミスを犯しても、エディタは無言のままなので、実行時のエラーで初めて気づくことになります。これは、ある意味、仕方ないですねぇ。
1週間、いろいろと試した中で、「あぁ、やっぱりこれはだめだ。使えない。」というのも、確かにいくつか見つかりました。
ところがところが・・・・・・、リブレオフィスのマクロでは使えないと思われるVBA機能であっても、実はちょっとした工夫で使えるようになります。
私がこの1週間で試した中で探し当てた、その辺のノウハウを、次の記事で書こうと思っています。
リブレオフィスは、
1 無料でインストールできます
2 マクロができます
3 しかも、VBAに対応しています
これは、超お得です。2 マクロができます
3 しかも、VBAに対応しています
PC用のメモリも安くなってきました。私が増設用に購入したのがこれです。
◆ Team ノートPC用メモリ 価格:¥4,980
◆ ストレージもSSDへ 価格:¥4,880
それでは、また次の記事で。
■■■■ goosyun ■■■■
《2019年08月07日追記》
リブレオフィスで動作しないVBAの対処策、ノウハウを記事にしました。
⇒ こちらの記事をご覧ください。