フリーソフトウェアのLibreOfficeでVBA(Visual Basic for Application)が動くらしい

Excel VBAVisual Basic for Application)の勉強したかったのですが、パソコンにExcelが入ってないので諦めてましたが、

pineplanter.moo.jp

qiita.com 

thom.hateblo.jp

 ⇧  上記サイト様によると、LibreOfficeでもVBAが動くみたいですね。

 

thom.hateblo.jp

⇧  VBAのことについては、上記サイト様がとても詳しいです。

※  ページの一番最後に追記しましたが、LibreOfficeでマクロを作成する場合は、ファイルの拡張子を「.ods」で保存しないと、ファイルを開き直した時にマクロが消えてしまうので注意です。

記事の中で、 「.xlsx」となっている個所は、「.ods」に置き換えてください。

 

LibreOffice Calcの起動

何はともあれ、LibreOfficeを起動。

f:id:ts0818:20171224214232j:plain

「ツール(T)」>「マクロ(M)」>「マクロの管理(O)」>「LibreOffice Basic...」を選択。まずは、「ファイル(F)」>「名前を付けて保存(A)...」を選択。

f:id:ts0818:20171224222123j:plain

適当な名前で保存。

f:id:ts0818:20171224222221j:plain

「ツール(T)」>「マクロ(M)」>「マクロの管理(O)」>「LibreOffice Basic...」を選択。

f:id:ts0818:20171224222352j:plain

 

「〇〇.xlsx」の中の「Standard」を選択した状態で、「新規作成」を選択。

f:id:ts0818:20171224223628j:plain

「OK」。

f:id:ts0818:20171224223848j:plain

いきなりエラー。「OK」。

f:id:ts0818:20171224223911j:plain

「Start」。

f:id:ts0818:20171224223942j:plain

「完了(F)」。

f:id:ts0818:20171224224009j:plain

今度は作成できました。

f:id:ts0818:20171224224036j:plain

以下をエディターに入力し、

REM  *****  BASIC  *****

Sub Main
    Range("A1") = "Merry Christmas Mr.Lawrence"
End Sub

f:id:ts0818:20171224224125j:plain

エディター上で「Ctrl + S」で保存します。「Microsoft Excel 2007 - 2013 XML 形式を使用(U)」を選択。

f:id:ts0818:20171224224715j:plain

エディター上で「F5」キーで実行すると、エラー!

f:id:ts0818:20171224224842j:plain

 

「Option VBASupport 1」でVBAモード?

Option VBASupport 1 という記述をマクロエディターの先頭に追加することで、VBAが機能するようになるようです。

Option VBASupport 1
REM  *****  BASIC  *****

Sub Main
    Range("A1") = "Merry Christmas Mr.Lawrence"
End Sub

f:id:ts0818:20171224224922j:plain

エディター上で「F5」キーを入力。「vbaTest.xlsx」ファイルのほうを確認すると、

f:id:ts0818:20171224225117j:plain

A1 セルに文字が入力されました。

『Merry Christmas Mr.Lawrence』ということで、今回はこのへんで。

 

2018年2月24日(土)  追記:

Libre OfficeのCalcでは、ファイルの拡張子に注意が必要のようです。

「.xlsx」でファイルを保存すると、モジュールが保存されないようです。正しくは、「.ods」でファイル保存だそうです。

VBAをLibreOfficeで動かす方法freesol.wordpress.com

 

ファイルを開いてる場合は、「ファイル(F)」>「名前を付けて保存(A)...」を選択。

f:id:ts0818:20180224141804j:plain

「ファイルの種類(T)」 で、「ODF 表計算ドキュメント(.ods)(*.ods)」を選択。

f:id:ts0818:20180224141820j:plain

 「保存(S)」をクリック。

f:id:ts0818:20180224141836j:plain

 拡張子「.ods」で保存できました。

f:id:ts0818:20180224134012j:plain

マクロを含んだ、拡張子が「.ods」のファイルを開こうとすると、警告が出ますが「OK」を選択。

f:id:ts0818:20180224134201j:plain

警告の指示通り、「ツール(T)」>「オプション(O)...」を選択。

f:id:ts0818:20180224134839j:plain

「セキュリティ」の「マクロセキュリティ(Y)...」を選択。

f:id:ts0818:20180224135532j:plain

「セキュリティレベル」タブで「高(I)」となっているものを、

f:id:ts0818:20180224135506j:plain

「中(M)」にしてみました。「OK」。

f:id:ts0818:20180224140144j:plain

で、また、マクロを含んだ、拡張子が「.ods」のファイルを開き直したら、日本語になって、選択肢が増えました。マクロを使う場合は、警告が出るのは仕方がないっぽいですかね。?「マクロの有効化(E)」を選択。

f:id:ts0818:20180224140239j:plain

モジュールが消えていないか確認。

「ツール(T)」>「マクロ(M)」の中の、f:id:ts0818:20180224140641p:plain

「マクロの管理(O)」>「LibreOffice Basic...」を選択。

f:id:ts0818:20180224140847p:plain

モジュールが保存されています。

f:id:ts0818:20180224135843j:plain

とりあえず、Libre Officeでマクロを記述する場合は、ファイル保存で拡張子「.ods」にしておくのが良さ気ですかね?