Libre Office Basic マクロ
Libre Office Basicでプログラミングする際に、頻繁に出てくるドキュメントオブジェクトの取得について
整理してみましょう。
なお、本稿の作成にあたりAndrew Pitonyak氏による「OpenOffice.org Macros Explained
OOME Third Edition」Last Modified Monday, August 12, 2013 at 09:35:59 PM ,Document Revision: 543
を参照しています。詳細な解説を記述した労作に敬意を表し、その努力に感謝します。
表計算ソフト用Calcでの処理を考えます。現在アクティブなドキュメントを対象にするのであれば、
いろいろな処理を行う際に必要となるドキュメントオブジェクトの取得は、
oDoc = ThisComponent
のように簡単に行えますね。
また、オブジェクト変数oDocを介さずに、直接ThisComponentを使うこともできます。
oSheet = ThisComponent.Sheets(0)
のような使い方です。
また特に複数のシートを順に処理していきたい場合などには、シートオブジェクト配列から指定した番号の
シートを取り出す方法もあります。
oSheet = ThisComponent.getSheets().getByIndex(0)
シートの取り出しは、もちろんシート名を指定して行う方法もあります。
oSheet = ThisComponent.Sheets.getByName("Sheet1")
ファイルからドキュメントを開きそのオブジェクトを取得する場合は、ファイル選択ダイアログなどで
ファイルのフルパスを得たのち、以下のようにしてそのオブジェクトを取得できます。
........ Dim Array(1) as Integer Dim FileProperties(1) As New com.sun.star.beans.PropertyValue ........ oDoc=StarDesktop.loadComponentFromURL( "C:\Test.ods","_blank",0, FileProperties()) ........
空の新規ファイル作成の場合のドキュメントオブジェクト取得は
Dim noArgs() Dim sURL As String Dim oDoc as Object sURL = "private:factory/scalc" oDoc = StarDesktop.LoadComponentFromUrl(sURL, "_blank", 0, noArgs()) .........