LibreOffice Pythonマクロ　サンプルプログラム（初級者向け）No.3

注意)
このページのマクロは、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

LibreOffice Pythonマクロ　サンプルプログラム（初級者向け）No.2
https://qiita.com/ty21ky/items/d34792d5dd03ec1122ce

#Macroの杜

【 General No.1 】LibreOffice全てで動作する。
http://openoffice3.web.fc2.com/Python_Macro_General_No1.html

#####下記の修正点を見る前に自分で上記のサイトのコードで実行し、エラーが出たら、自分で何処にバグがあるか探す練習をしてください。

メッセージボックスのパラメーターが１つ多い等、最初の方のメッセージボックスはほとんどがエラーになります。以下の修正が必要です。（この記事は古い記事なので、作成した時の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 ]******************************

【　General No.1　】

Macroの基

GM-1)[General]Hello World in Python!!(1)---メッセージボックスの部分修正が必要です。（コードの中に変更の説明あり。少しわかりにくい。）

GM-)[General]Hello World in Python!!(2)---エラー。後回し

GM-)[General]Messagebox1---エラーなし
少しわかりにくい。
 [ ～LibreOffice 4.1 ]
以降は不要

GM-)[General]Messagebox2---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GM-)[General]Messagebox3---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GM-)[General]Messagebox4---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GM-)[General]Messagebox5---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GM-)[General]Messagebox using WindowDescriptor---エラーなし

GM-2)[General]If文(1)---メッセージボックスの部分修正が必要です。
from com.sun.star.awt import Rectangle
を
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
に変更する。

msgbox = toolkit.createMessageBox(window, Rectangle(), 'messbox', 1, 'Title', message)
を
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, 1, 'Title', message)
に変更する

GM-)[General]If文(2)---If文(1)と同じ変更を行う。

GM-)[General]If文(3)---If文(1)と同じ変更を行う。

GM-)[General]while文---If文(1)と同じ変更を行う。

GM-)[General]while文の終了時の処理---If文(1)と同じ変更を行う。

GM-)[General]for文(1)---If文(1)と同じ変更を行う。

GM-)[General]for文(2---If文(1)と同じ変更を行う。

GM-)[General]for文(3)---If文(1)と同じ変更を行う。

GM-)[General]for文の終了時の処理---If文(1)と同じ変更を行う。

GM-)[General]break---If文(1)と同じ変更を行う。

GM-)[General]次のLoopへJump---If文(1)と同じ変更を行う。

GM-)[General]予約語---If文(1)と同じ変更を行う。
字下げに、半角スペースとTabが混在しています。

GM-)[General]Increment / Decrement---If文(1)と同じ変更を行う。

GM-)[General]強制終了---If文(1)と同じ変更を行う。
'強制終了しました'と表示されるがマクロを終了LibreOfficeを終了するわけではない？

GM-)[General]Finally---If文(1)と同じ変更を行う。

関数

GDef-)[General]関数---If文(1)と同じ変更を行う。

GDef-)[General]定義されている関数、変数の一覧を取得---If文(1)と同じ変更を行う。

GDef-)[General]lambda式---If文(1)と同じ変更を行う。

GDef-)[General]List要素をFiltering( リスト内包表記 )[ 2.7系 ]---Python2用なので不可（現在のバンドルPythonはPython3）

GDef-)[General]List要素をFiltering( tuple内包表記 )[ 3.3系 ]---If文(1)と同じ変更を行う。

GDef-)[General]List要素からmap Listを作成( リスト内包表記 )[ 2.7系 ]---Python2用なので不可（現在のバンドルPythonはPython3）

GDef-)[General]List要素からmap tupleを作成( tuple内包表記 )[ 3.3系 ]---If文(1)と同じ変更を行う。

GDef-)[General]List要素に順に関数を適用する[ 2.7系 ]---Python2用なので不可（現在のバンドルPythonはPython3）

GDef-)[General]List要素に順に関数を適用する[ 3.3系 ]---If文(1)と同じ変更を行う。

GDef-)[General]関数のdocumentation string取得[ 2.7系 ]---Python2用なので不可（現在のバンドルPythonはPython3）

GDef-)[General]関数のdocumentation string取得[ 3.3系 ]---If文(1)と同じ変更を行う。

GDef-)[General]関数のdocumentation string取得2[ 2.7系 ]---Python2用なので不可（現在のバンドルPythonはPython3）

GDef-)[General]関数のdocumentation string取得2[ 3.3系 ]---If文(1)と同じ変更を行う。

GDef-)[General]関数かどうかCheck---If文(1)と同じ変更を行う。

Class

GCls-)[General]Classの定義---If文(1)と同じ変更を行う。

GCls-)[General]Classの継承---If文(1)と同じ変更を行う。

GCls-)[General]Objectの属性の設定---If文(1)と同じ変更を行う。

GCls-)[General]指定されたObjectの属性取得---If文(1)と同じ変更を行う。

GCls-)[General]指定されたObjectの属性名かどうか---If文(1)と同じ変更を行う。

GCls-)[General]指定されたObjectの属性削除---If文(1)と同じ変更を行う。

GCls-)[General]classのdocumentation string取得---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GCls-)[General]classのdocumentation string取得---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GCls-)[General]classの継承関係---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GCls-)[General]classかどうかのCheck---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GCls-)[General]多重継承---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GCls-)[General]property関数---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

Generator

GDGntr-)[General]Generatorと関数---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

[ Generator式 ]

GDGntr-)[General]平方和を求める---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDGntr-)[General]内積を求める---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

Format

GDFmt-)[General]文字列中に所定の値を設定1---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]文字列中に所定の値を設定2(keyword引数)---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]文字列中に所定の値を設定3(Option付き)---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]文字列中に所定の値を設定4(Dictionay型Data)---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]固定カラムで表示1---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]固定カラムで表示2---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]固定カラムで表示3---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）

GDFmt-)[General]数値を0詰めで表示---メッセージボックスの部分修正が必要です。（＊＊[ Macro Code ]＊＊の上側の変更が必要）