Python マクロ
Python で OOo のマクロを書くための方法です。 メニューのツール - マクロ - マクロの管理 - Python を選択すると次のようなダイアログが開きます。 このダイアログでマクロを選択して実行できます。 マクロの実行
Python マクロは BeanShell、JavaScript のようにファイル単位での実行ではなく、def で定義した Python の関数単位で実行します。 たとえば、上記ダイアログで pytest ファイルには次の二つの関数があります。
もちろん、ファイルの宣言部分は共有されます。 表示する関数を制限
ダイアログに実行できるように表示する関数を制限できます。内部で使用している関数を表示させたくないときに利用します。 .py ファイルの最後に次のように書きます。 g_exportedScripts = getTypeClassByName,pytest 表示したい関数をタプルで羅列します。 マクロの作成
現在は Python のマクロを実行する IDE が実装されていませんし、ファイルを自分で作成しなければいけません。 マイマクロ
マイマクロに新しいマクロを作成するには、user/Scripts/python に .py ファイルを作成します (python ディレクトリが無ければ自分で作成してください)。 ドキュメントライブラリ
ドキュメントに梱包されたマクロを作成するには、作成したマクロの .py ファイルをドキュメントの ZIP ファイルを解凍して入れあげなければいけません。 ドキュメントのアーカイブの最上部から Scripts/python ディレクトリを作成して .py ファイルをその中にいれます。 XSCRIPTCONTEXT
XSCRIPTCONTEXT は OOo のフレームワークスクリプトで利用される変数です。この変数を介して Python と OOo の間でやり取りできます。この変数を利用するに際してとくにインポートする必要はありません。 コンポーネントコンテキスト
まず最初にフレームワークスクリプトから必要とされるコンポーネントコンテキストへはこの XSCRIPTCONTEXT から次のようにします。 ctx = XSCRIPTCONTEXT.getComponentContext() サービスマネージャ
サービスをインスタンス化するために利用する com.sun.star.lang.XMultiComponentFactory インターフェースを取得します。 smgr = ctx.ServiceManager デスクトップ
ドキュメントを読み込む際などに利用する com.sun.star.frame.Desktop サービスを取得します。 desktop = XSCRIPTCONTEXT.getDesktop() ドキュメント
現在のドキュメントで作業するときに取得したいドキュメントオブジェクトは次のようにして取得します。 doc = XSCRIPTCONTEXT.getDocument() import
独自のファイルを import する必要があるときには注意が必要です。概要参照。 説明
定義した関数のコメントがマクロの実行ダイアログの説明に表示されます。 def hello(): """Say hello.""" pass |