2018年8月12日日曜日

LibreOfficeのCalcでExcelマクロを動かせるまでの戦い

マイクロソフトのExcelは良いけど高い。
LibreOfficeのの表計算ソフトcalcを使えば無料だ。

使い勝手はExcelとは違うけれど、Excelもバージョンが変われば使い勝手は全然変わってしまうのだから、使い勝手の維持はExcelにお金を払い続ける理由にはならないですね。

というわけで、私は個人的にはExcelを買わず、LibreOfficeで済ませています。


普通に使うなら問題ないのですが、ちょっと困るのはマクロです。
これまでに作ってきたマクロを活用したいけれど、LibreOfficeで使えるマクロはVBAとは全然違います。

やっぱ、マクロを使うために買わなきゃいけないのか・・・と思っていましたが、いろいろ調べて、パソコンと戦ってやっとできましたので、備忘録的まとめ

Excelマクロが使える設定

マクロの1行目に
Option VBASupport 1
と入れれば、Excelマクロのコードがそのまま動かせるらしいのです。

素晴らしい、こんな簡単なことでExcelを買わなくていいのならとっても素敵とやってみました。


なかなかすんなり動かない

ところが
「basicランタイムエラー35」というメッセージが出てうまく動かない。

このメッセージは、定義されていない関数とかを使っているよというもの。

調べてみると、ワークシート系のものはJavaがインストールされてなくてはだめだとか。

とにもかくにも、とりあえずLibreOfficeを最新にアップデート。
こだけでは変化なし。

Javaも最新にするためJava Runtime Environmentの略の「JRE」で検索・・・
出てくるのはJR東日本ばかりじゃない・・・
「JRE Java」で検索すると無事
https://java.com/ja/download/
Javaのダウンロードページにたどり着きました。

ここでJavaの最新版をダウンロードしてインストール。

いざ、LibreOffice calcのマクロを実行・・・
状況変わらずでした。

LibreOfficeを閉じて再起動でもおなじく駄目。

最後、パソコンごと再起動したら動作するようになった。


流れをまとめて

LibreOfficeの表計算ソフトウェア CalcでExcelマクロを動かしたいときは、1行目に
「Option VBASupport 1」
と書く。
それで「basicランタイムエラー」が出て動かないときは、LibreOfficeを最新にアップデートしてみる。
それでもだめなときには、Javaの最新版をインストールしてみる。

そして、calcから「ツール」→「オプション」→「LibreOffice」→「詳細」の画面の「Javaの実行環境を使用」にチェックをいれる。
calcにJavaの実行環境の使用設定
calcにJavaの実行環境の使用設定

さらに、calcから「ツール」→「オプション」→「LibreOffice」→「セキュリティ」の画面の右の「マクロセキュリティ(Y)」のボタンから進んでセキュリティレベルを「中」にします。でないと、署名のない自作マクロは動かせないので。

calcのセキュリティレベルの使用設定
calcのセキュリティレベルの使用設定


さてさて、ここまでやっても、私はすんなり動いてくれませんでした。
ここまでやって、パソコンごと再起動したらやって動くようになりました


教訓

パソコンごと再起動までやってみるべし