LibreOffice/OpenOffice.orgのBookmarks Menu拡張のインストール/Python-UNO向け設定メモ

Last modified: 2021-09-08

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” を押すとインストールが完了する。

ooo-3.1-bookmarksmenu-addonmanager

インストールが完了すると拡張一覧に登録される。

メニューの編集

インストールの後一度LibreOffice/OpenOffice.orgを閉じて3起動し直すと “ツール” メニューに “アドオン - ブックマークメニュー” が出る。これを開くとメニューの編集が行える。

ooo-3.1-bookmarksmenu-menuedit

画像は初期状態のメニュー編集ダイアログ

Pythonマクロ一覧のショートカット

“新規” を選択し、タイプを “コマンド” としてURLに

http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoPython%2FMemo

“Python… メニュー” に書かれている文字列を貼り付けたものを追加すると、このメニュー項目を選択したときに “ツール - マクロ - マクロの管理 - Python” のダイアログが一発で出る。

ooo-3.1-bookmarksmenu-pythonmacros

画像はメニュー項目の設定

頻繁にマクロ一覧ダイアログを出す場合、項目をメニュー項目の一番上に持っていくと便利かもしれない。

ooo-3.1-bookmarksmenu-menu

ooo-3.1-bookmarksmenu-menuedit-after

個別のマクロをメニュー項目として実行するための設定

個別のマクロをメニュー項目として実行するには、タイプが “マクロ”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マクロ一覧” メニューを作って簡単に選べるようにするといった形ができそうなので、そういった形をとるほうが望ましい気がする。

  • 使用したバージョン
    • OpenOffice.org(Go-oo) 3.1.1
    • Bookmarks Menu 0.6.2

  1. OOo Basicなら可 ↩︎

  2. ライセンスについては記事公開当時 https://wiki.openoffice.org/wiki/API/Samples/StarBasic/Office/Favorites-Menu と同様、サンプルのコードとして自由に改変/利用が可能、としていたが、GitHub上のプロジェクトではApache-2.0 Licenseとなっている ↩︎

  3. クイック起動が有効な場合はこれも終了する ↩︎