前の関連記事:LibreOffice(33)デベロッパーガイド5:ディスパッチフレームワーク
LibreOffice Basicマクロのモジュールやライブラリーの管理に手間取ったので操作法のメモです。
マクロ名がプロシージャ名、プロシージャはモジュール内にありモジュールはライブラリー内にある
LibreOfficeのいずれかのアプリのメニューから、ツール→マクロ→マクロの管理→LibreOffice Basic、で適当なマクロを選択して「編集」をクリックするとLibreOffice Baicの統合開発環境(IDE)が起動します。
LibreOfficeのマクロは「Sub ~ End Sub」から成るプロシージャが最小単位になっています。(プロシージャと関数)
このプロシージャを書き込んだファイル(xba)をモジュールといい、モジュールを入れたフォルダをライブラリといいます。
マクロセレクターのマイマクロに表示されるライブラリーはC:\Users\ユーザー名\AppData\Roaming\LibreOffice\4\user\basicの同名フォルダになります。
モジュールはそのフォルダの中にある同名のxbaファイルになります。
これらは隠し属性になっているので通常はエクスプローラからは直接操作できません。
IDEのオブジェクトカタログにはこのように表示されます。
この図では「Standard」がライブラリー、「Module1」、「Module2」、「Module3」がモジュールになります。
「Main」や「test_color」、「kotei」、、、などとあるのModule1の中にあるプロシージャ名です。
プロシージャ名がマクロ名になります。
モジュール内では同名のプロシージャは作れません。
同名のプロシージャをモジュールに作って保存してもそのときにはエラーはでません。
それを実行するときに初めてこのようなエラーがでてきます。
ライブラリーやモジュール名、プロシージャ名に全角文字は使えません。
LibreOffice Basic IDEからはモジュールやライブラリーの新規作成や削除、改名ができない
LibreOffice Basic IDEから新規のモジュールを作ろうと思いましたが、メニューのファイル→新規作成、の項目ではマクロに関するファイルの新規作成項目がありません。
オブジェクトカタログからでもダメです。
新規作成だけでなく、改名や削除もできません。
Pythonマクロと違い、隠し属性になっているライブラリーやモジュールをエクスプローラから直接削除してもマクロセレクターからは表示が消えません。
とくにライブラリーのフォルダを削除してしまうとLibreOfficeの起動時に毎回エラーがでてきてしまいます。
モジュールやライブラリーの新規作成と削除はマクロ管理画面から可能
ツール→マクロ→マクロの管理→LibreOffice Basic、「管理」をクリック。
この画面からモジュールの新規作成と削除ができます。
「ライブラリ」タブを選択するとライブラリーの新規作成と削除ができます。
しかし、名前の変更ができません。
隠し属性を解除してライブラリーフォルダ名やxbaファイル名を変更してみましたが、名前の変更は反映されませんでした。
ちなみに、マクロ名の変更はプロシージャ名を変更すれば可能です。
モジュールとライブラリーの名前を変更する方法
ライブラリとモジュールを準備しています - LibreOffice Helpをみつけてようやくモジュールやライブラリーの名前を変更する方法がわかりました。
ツール→マクロ→マクロの管理→LibreOffice Basic、「管理」をクリック。
ここで変更したいモジュール名をゆっくりダブルクリックするとカーソルが出現するので名前の変更ができました。
ダブルクリックでもなくシングルクリックでもなく、「ゆっくり」です。
私のパソコンでは1秒間隔のクリックで100%再現できました
1秒間隔で2回クリックして、1秒ぐらい待つと編集可能になります。
これはヘルプを見ないとわからないですね。
ライブラリもライブラリタブから同じ方法で変更できますが、「Standard」というライブラリだけは、標準ライブラリなので変更できません。
参考にしたサイト
OpenOffice.org BASIC プログラミングガイド - Apache OpenOffice Wiki
LibreOffice Basicにも使えます。
ライブラリとモジュールを準備しています - LibreOffice Help
ライブラリとモジュールの管理に関するヘルプ。
0 件のコメント:
コメントを投稿