Pythonで記述したLibreOffice/OpenOffice.org用マクロをテストするにはメニュー項目を “ツール - マクロ - マクロを実行” または “ツール - マクロ - マクロの管理 - Python” とたどってダイアログを出す必要があり、OpenOffice.orgのバージョン3.1系の時点では “ツール - カスタマイズ” でPythonを含んだマクロ一覧のダイアログ自体1にショートカットキーを設定することはできない。
個別のマクロに対してであれば、キー入力一つでマクロを実行するように設定することができる。
これに対する対処は幾つかあるようだが、はにゃ(hanya)氏作の “Bookmarks Menu” という拡張2を用いる方法をとることにする。
2021年時点、手元のLibreOffice 7.1系でこの拡張の最新バージョンを使用しても、“ブックマークの編集” のメニュー項目を選択するとLibreOfficeが落ちてしまい、全ての動作が正常であることは確認できていない。
Webブラウザから
のいずれかを開いて拡張の.oxtファイルを保存(ダウンロード)する。
この後でLibreOffice/OpenOffice.orgの “ツール - 拡張機能マネージャー” を開き、“追加” ボタンを押して注意を読み、“OK” を押すとインストールが完了する。
インストールが完了すると拡張一覧に登録される。
インストールの後一度LibreOffice/OpenOffice.orgを閉じて3起動し直すと “ツール” メニューに “アドオン - ブックマークメニュー” が出る。これを開くとメニューの編集が行える。
画像は初期状態のメニュー編集ダイアログ
“新規” を選択し、タイプを “コマンド” として、URLに
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoPython%2FMemo
の “Python… メニュー” に書かれている文字列を貼り付けたものを追加すると、このメニュー項目を選択したときに “ツール - マクロ - マクロの管理 - Python” のダイアログが一発で出る。
画像はメニュー項目の設定
頻繁にマクロ一覧ダイアログを出す場合、項目をメニュー項目の一番上に持っていくと便利かもしれない。
個別のマクロをメニュー項目として実行するには、タイプが “マクロ”、URLは
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoPython%2FMemo
の “Python スクリプトの URI (URL)” の要領で入力したものを指定した項目を作成する。
例えば、[OOoユーザディレクトリ]/user/Scripts/python/calc_insert_sheet_2.py
というファイルの関数m01_add_sheet()
を実行したい場合のURLは
vnd.sun.star.script:calc_insert_sheet_2.py$m01_add_sheet?language=Python&location=user
となる。
[OOoユーザディレクトリ]/user/Scripts/python/
のディレクトリに(サブディレクトリを作らずに)スクリプトを配置する場合
:
と$
の間にファイル名$
と?
の間にマクロ本体の関数名を指定することになる。
個別にマクロを実行するメニュー項目を作る場合、サブメニューを作って分けると便利かもしれない。
ただ、全てのマクロに対して1つずつメニュー項目を “手動で” 作っていくのはあまりうまいとは言えず、それこそ、拡張が自作できるぐらいにまで慣れてくれば “Pythonマクロ一覧” メニューを作って簡単に選べるようにするといった形ができそうなので、そういった形をとるほうが望ましい気がする。
OOo Basicなら可 ↩︎
ライセンスについては記事公開当時 https://wiki.openoffice.org/wiki/API/Samples/StarBasic/Office/Favorites-Menu と同様、サンプルのコードとして自由に改変/利用が可能、としていたが、GitHub上のプロジェクトではApache-2.0 Licenseとなっている ↩︎
クイック起動が有効な場合はこれも終了する ↩︎