LibreOfficeでマクロが削除できない・・・

マクロが削除できない コンピュータ関連
スポンサーリンク

LibreOfficeのCalcやBaseで、マクロが完全に削除できなくてセキュリティ警告が出てしまう
そんなときの対処法、というか備忘録。

「このドキュメントにはマクロが含まれています。」
マクロ セキュリティ警告

マクロにはウイルスが含まれている事があり・・・と続くわけですが、
このセキュリティ警告が消せなくなりました。
Baseを使っていたときの事です。

スポンサーリンク

原因

作成した.odbファイルの中に、フォルダが残ってしまっているのが原因。
(環境:Mac & LibreOffice 5.2.4.2)

例えば、

ツール > マクロ > マクロの管理 > JavaScript

からライブラリを作成しようとしたとしよう。

ライブラリ追加

うん、でけた。

ライブラリ追加済み

さらに「作成」からマクロを作成することができる。
で、これらを削除する。
該当項目を選択して削除ボタンを押す。
もちろん問題なく削除できる。

と・こ・ろ・が・だ。

この時、マクロやライブラリは削除されても

Scripts/javascript/

という、ファイルを置く為に作られたフォルダ(/javascript/)が消される事は無い。

削除しようとしても、

マクロ削除

エラーが出て削除できない。

「選択したオブジェクトを削除できませんでした。」
エラー

非常にストレスが溜まる。

マクロのセキュリティレベルを下げれば警告は出ないが、根本的な解決にはなっていない。
勿論セキュリティ上も宜しくない。

しかしなかなか情報が見つからない。
Excelではモジュール単位での解放を行えば良いとあるが、そんな項目はLibreOfficeでは見つからない。

ちなみに

マクロの管理 > LibreOffice Basic

で作成した場合は「管理」ボタン からのモジュールタブで削除が可能。
この場合は警告が出続ける事は無い。

なんとかしたいと小一時間。いやもっとか。
最新版にアップデートしてみたり、
いろいろ探しまわってようやく冒頭に記した原因を把握。

スポンサーリンク

対処法

(※Macでの対処法になります。windowsとかでも参考になるかな?そもそもこんな不具合はない?)

ここに a.odb というファイルがあるとします。

ちなみに.odbファイルは名前を変えた.zipファイルらしく、拡張子を変えればそのまま解凍できます。

が、解凍する必要はありません。

ターミナルを開いて、

unzip -l a.odb

と打ってみましょう。
-l はファイル一覧を表示するオプションです。

すると中に

Scripts/javascript/

があるのが分かります。

これを、

zip -d a.odb Scripts/javascript/

で削除します。

これでマクロのセキュリティ警告は消える筈です。

フォルダは BeanShell、Pythonなど作成するものによって変わります。

まとめ

LibreOffice BASEでデータベースを構築しようとしたのです。

あまり使った事がなかったので、試行錯誤しつついじってみたのですが、
ひょんな事からマクロを追加してしまったのでした。

勿論すぐに消すつもりでしたし、出来る筈でした。

それがこんな面倒くさい事になろうとは・・・。

疲れた。

もしかして他に方法あるのかな。
だからあまり問題視されてないのかも?

コメント

タイトルとURLをコピーしました