1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LibreOffice Pythonマクロをツールボタンで実行する

Last updated at Posted at 2018-02-25

https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python
Apache OpenOffice wiki
Transfer from Basic to Python

ツールバーボタンからマクロを実行する

Pythonでは、割り当てられたツールバーボタンを使って関数が実行されたときに渡される引数を取るために、引数(または可変長引数)を使用してPython関数を定義する必要があります。

HelloWorld.py
def writeHello(*args):
    # writeHello(arg): is also ok but if you want to call this function 
    # by some ways, define your function takes variable arguments.
    XSCRIPTCONTEXT.getDocument().getText().getEnd().setString("Hello!")

例、上記のマクロを
/home/ユーザ名/.config/libreoffice/4/user/Scripts/python/ (Ubuntuの場合)
C:\Users\ユーザ名\AppData\Roaming\LibreOffice\4\user\Scripts\python (Windowsの場合)
に保存します。

マクロを作成する時の注意は、
def writeHello(*args):
引数に「*args」とします。

ツールボタンの作成

例、上記マクロの場合

Writerを新規作成します。

表示 ー> ツールバー(T) ー> フォームコントロール(L)
フォームコントロールのウインドウが表示されます。

デザインモード(右上)をクリックすると、各ボタンがアクティブになります。

ボタン(OK)左の上から5番目をクリックし、ボタンを配置したい場所でマウス左ボタンをドラッグします。

フォームコントロールのウインドウの選択ボタン(矢印マーク)(左上)をクリックし、今配置したボタンを選択する。

右クリック ー> コントロール(T) ー> 属性プッシュボタン ダイアログが表示されます。

全般タブ:名前等を設定
イベントタブ:「実行時の...」をクリック ー> アクションの割り当て ダイアログが表示されます。

割り当て「マクロ(A)...」 ー> ライブラリで先程保存したマクロを指定します。 マイマクロ ー> HelloWorld ー> マクロ名 ー> writeHello ー> OK ー> OK ー> 属性プッシュボタン ダイアログを閉じる。

フォームコントロールのウインドウのデザインモード をクリックする。

これで実行できる状態になりました。

ボタンをクリックすると、Writerに「Hello!」と表示されます。

ツールバーにツールボタンを作成する場合

Writerを新規作成する。
例、「無題 1 - LibreOffice Writer」

ツール ー> カスタマイズ(C)... ー> カスタマイズ ダイアログが表示される

ツールバー タブ ー> 右上の選択ボックスで「無題 1」を選択する。
(ツールバーは「無題 1」だけに追加されます。新しく新規作成してもツールバーはありません。)

2番目中央の「+」をクリックしてツールバーの名称、を入力します。

カテゴリー(Y)の▲をクリックし「マクロ」を選択します。

機能(F)でマクロを選択する。
例、
マイマクロをダブルクリックする。
Sample - Hello Worldを選択し、➡ をクリックすると、右側に追加されます。

これで、ツールバーに「マクロ名」のボタンが追加されています。

そのボタンをクリックします。

ここで、エラーになった場合、
def マクロ名():
になっている可能性があります。

def マクロ名(*args):
「*args」を追記します。

これで、ボタンをクリックするとマクロを実行します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?