OpenOffice.org BASICマクロで、Calcに新しい表計算シートを作成します。

ThisComponentで取得できるCalcのドキュメントには、ドキュメントにあるシートを集めたシートコレクションSheetsがあります。このシートコレクションには、新しいシートを作成し指定位置の前に挿入するinsertNewByName()メソッドがあるので、これを使うと新規シートを作成することができます。

Calcを起動し、OpenOffice.org BASICマクロの編集画面に入って、以下のマクロを実行してみてください。

Sub Main
	ThisComponent.Sheets.insertNewByName("testSheet", 0)
End Sub

実行すると、testSheetという名前で新規シートが作成され、一番前に追加されたと思います。insertNewByName()には、最初の引数に作成するシートの名前、二番目の引数に作成したシートをどのシートの前に挿入するかを0から始まるインデックスで指定します。ただし、すでに同じ名前のシートがあるとエラーになるので注意してください。

シートを新規作成する前には、指定した名前のシートがあるか調べるシートコレクションのhasByName()メソッドで作成しようとしているシートと同じ名前のシートがあるか調べ、あれば指定の名前のシートを削除するremoveByName()で削除することもできます。

If ThisComponent.Sheets.hasByName("testSheet") Then
	ThisComponent.Sheets.removeByName("testSheet")
End If

マクロでデータを取得し表示する際は、独自に新規の表計算シートを作成してそこに表示するようにすると、既存シートに影響を与えずにデータを表示することができるので便利でしょう。


創作プログラミングの街 > OpenOffice.orgマクロ開発メモ