こんにちは。Milkです。
LibreOfficeでVBAが使えたらなぁ・・・
そんな風に思っていました。
どうやら、それほど手間をかけることなくVBA、つまりエクセルマクロが使えるようなんです。
こちらの内容と+α で対応してみました。
環境設定手順
以下の順番で環境を整えます。
- Java(JRE)をインストールする
- LibreOfficeの「Calc」を利用してマクロを作成する
(作成時に、VBAオプションを有効にする) - マクロを実行可能設定にする
- 「.ods」拡張子で保存する
となります。
Java(JRE)をインストールする
Javaをインストールするのですが、これは何故かと言うと、マクロを実行する時に「Javaがない!」と警告を毎回出してくるからです。
実のところ、これは無視してもマクロの実行は可能なのですが、初回は必ず言ってくるのでうざったい・・・
素直にインストールした方が楽そうです。
https://java.com/ja/download/java.com
恐らくなのですが、LibreOfficeの前身である、OpenOfficeがJava上で動いていたことと関連があると思われます。
LibreOfficeは、OpenOfficeから分派して産まれたフリーソフトウェアになります。
なので、中身にJavaで動くことを前提としている機能があるのかも?しれません。
(因みにですが、Javaをインストールしなくても特殊な使い方をしなければ、警告は出てきません。)
LibreOfficeの「Calc」を利用してマクロを作成する
それでは、MicrosoftOfficeの「EXCEL」に対応するLibreOfficeの「Calc」を使ってみましょう。
マクロを組むには以下の操作をします。
「ツール」-「マクロ」-「マクロの管理」-「LibreOffice Basic マクロ」
すると以下の画面が出てくるので、現在開いているブックを指定して、マクロを組みます。
ここで、VBAを利用できるように先頭行でオプション指定を行います。
Option VBASupport 1
- 0:VBA機能を使わない
- 1:VBA機能を使う
という意味です。
例えば、以下のように記述してみます。
Option VBASupport 1 REM ***** BASIC ***** Sub Main Range("A1") = "マクロを実行しました" End Sub
これにより、A1セルに「マクロを実行しました」と挿入されるはずです。
実際に表示出来ましたね!
マクロを実行可能設定にする
さて、このブックを再度開いてマクロを実行しようとすると、無効化されてしまいます。
よって、このマクロ実行のセキュリティを変更します。
「ツール」-「オプション」
以下の画面で、「セキュリティ」を選択します。
「マクロセキュリティ」がありますので、この部分で「中」に変更をします。
これをすることによって、ブックを開いた際に「マクロの実行」について確認のダイアログが表示されるようになります。
「.ods」拡張子で保存する
VBAなんだから、「.xlsm」で保存すれば良いんじゃないの?
それをすると、なんと・・・
マクロが消えます!
いや・・・ほんとです・・・
確実に、「.ods」の拡張子で保存してください。
この形式でないとマクロが一緒に保存されないようです。
最後に
オプション指定を行えば、VBA(マクロ)が実行出来るとは知りませんでした。
確かに「Helpページ」には書いてあるけども・・・(汗)
という訳で、「いつもはエクセルマクロ使ってるから、同じように書きたいなぁ」と思ったら、利用してみて下さいませ。
それでは、今回はこの辺で。
adios!!