注意)
このページのマクロは、Libreofficeの「マクロの実行」で動作させます。
LibreOfficeでPythonマクロを実行するには、
UbuntuのLibreOffice(MS Office互換性あり)でPythonマクロを使用する方法(超初級者向け)
https://qiita.com/ty21ky/items/2c8b001363c8293198e2
を参照ください。
環境
Ubuntu Studio 17.10
LibreOffice6.0
LibreOffice Pythonマクロ サンプルプログラム(初級者向け)No.1
https://qiita.com/ty21ky/items/d489da25f7824b768abf
Macroの杜
【 General No.6 】LibreOffice全てで動作する。
http://openoffice3.web.fc2.com/Python_Macro_General_No6.html#OOoGW02a
下記の修正点を見る前に自分で上記のサイトのコードで実行し、エラーが出たら、自分で何処にバグがあるか探す練習をしてください。
メッセージボックスのパラメーターが1つ多い等、最初の方のメッセージボックスはほとんどがエラーになります。以下の修正が必要です。(この記事は古い記事なので、作成した時のVerだとエラーは出ないと思います。)
from com.sun.star.awt import Rectangle
を
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
に変更する。
msgbox = toolkit.createMessageBox(window, Rectangle(), oMsgType, oBtnType, oTitle, oMessage)
を
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
に変更する。
メッセージボックスタイプ'messbox'は何故か?エラーになるので'infobox'に変更しています。(上記の修正で治っているかも)
一部のコードの字下げに「半角スペース」と「Tab」が混在しているものがあり、コードをコピペで貼り付けた場合、マクロ実行のダイアログに表示されないので実行出来ません。修正が必要です。
下記のものは動作することを確認しました。
動作確認して追加していきます。
***************************[ Macro Code ]***************************
GTp-)[General]MRIの使用方法---パス
[ Screen ]
GTpS-)[General]Status Indicator---メッセージボックスの部分修正が必要です。(上記参照)
結果:「time.sleep(3)」を10回繰り返す
Window
GW-)[General]Current Frame Title取得---メッセージボックスの部分修正が必要です。(上記参照)
GW-)[General]ActiveFrame Title取得---メッセージボックスの部分修正が必要です。(上記参照)
CalcとWriter等を2つ以上起動してから実行する
GW-)[General]Window Sizeを設定する(位置指定可)---メッセージボックスの部分修正が必要です。(上記参照)
このマクロを複数回実行するとWindow Sizeが変更できなくなります。表示もおかしいです。
今回は、Base、Calc、Drawと実行した段階で表示がおかしくなり成功したとメッセージボックスが表示されます。ウインドウを移動すると変更したSizeに変わりました。
次にImpressで実行すると表示がおかしくなるだけで、Sizeは変わりません。
また、これを実行すると次に起動した時は小さくなったサイズで起動します。(サイズを何処かに保存しているようです。)
[ Property ]
[[-- URL --]]
GDPt-)[General]URL取得(1)---メッセージボックスの部分修正が必要です。(上記参照)
Calc等を何処かに保存してから、実行します。
GDPt-)[General]URL取得(2)---メッセージボックスの部分修正が必要です。(上記参照)
Calc等を何処かに保存してから、実行します。
[[-- Title --]]
GDPt-)[General]File Title取得---メッセージボックスの部分修正が必要です。(上記参照)
[[-- Identification --]]
GDPi-)[General]Applicetion Identitfy(Baseは除く)---メッセージボックスの部分修正が必要です。(上記参照)
GDPi-)[General]Version of LibreOffice( Apache OpenOffice )---エラーなし
[[-- Document Type --]]
GDTyp-)[General]読込み時のDocument Type取得---メッセージボックスの部分修正が必要です。(上記参照)
Dialog
GDlg-)[General]既成Dialog表示---エラーあり。後回し
字下げに半角スペースとTabが混在しています。
GDlg-)[General]Dialogからfileを取得---エラーなし
GDlg-)[General]DialogからFolderを取得---エラーなし
変更必要箇所 - oFolderPicker.setDisplayDirectory('c:\temp')
サポートしていない操作です(Ubuntuでは、フォルダーを指定できない??。)動作はします。後回し
GDlg-)[General]Plane Dialog作成---エラーなし
GDlg-)[General]Dialog with OK / Cancel Button---エラーなし
GDlg-)[General]Dialog with ProgressBar---エラーなし
GDlg-)[General]Edit Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
GDlg-)[General]Radio Button Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
GDlg-)[General]CheckBox Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
問題あり。後回し
GDlg-)[General]ComboBox Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
GDlg-)[General]ListBox Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
GDlg-)[General]Date Field Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
動作しますが表示される日付が変。後回し
GDlg-)[General]Time Ffield Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
問題あり。後回し
GDlg-)[General]File Dialog---メッセージボックスの部分修正が必要です。(上記参照)
字下げに、半角スペースとTabが混在しています。
GDlg-)[General]Label in Dialog---メッセージボックスの部分修正が必要です。(上記参照)
dispatchHelper
GDpHpC-)[General / Calc]Cellの移動---メッセージボックスの部分修正が必要です。(上記参照)
適当にセルを選択してから実行する。
実行した後にエラー。後回し。