Milkのメモ帳

日々の思いつきを忘れないようにのメモ用です。

Milkのメモ帳

LibreOfficeでVBAを利用する方法【Excelマクロ】


こんにちは。Milkです。
LibreOfficeでVBAが使えたらなぁ・・・

そんな風に思っていました。

どうやら、それほど手間をかけることなくVBA、つまりエクセルマクロが使えるようなんです。

こちらの内容と+α で対応してみました。

ts0818.hatenablog.com


環境設定手順

以下の順番で環境を整えます。

  1. Java(JRE)をインストールする
  2. LibreOfficeの「Calc」を利用してマクロを作成する
    (作成時に、VBAオプションを有効にする)
  3. マクロを実行可能設定にする
  4. 「.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 Statement

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!!