表計算ドキュメントの構造

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png

表計算ドキュメントのドキュメントオブジェクトは、com.sun.star.sheet.SpreadsheetDocument サービスをベースにしています。通常これらのドキュメントには、複数の表 (スプレッドシート) があります。マニュアルで使う用語として、表計算ドキュメント は 1 つのドキュメント全体を意味するものとし、スプレッドシート (略称: シート) は各ドキュメントを構成する個々の表 (テーブル) を意味するものとします。

Documentation note.png VBA と Apache OpenOffice Basic では、スプレッドシートとスプレッドシートの内容に対して、異なった用語が使用されています。VBA のドキュメントオブジェクトは Workbook、個々のページは Worksheets と呼ばれますが、Apache OpenOffice Basic の場合は SpreadsheetDocument および Sheet と呼ばれています。

スプレッドシート

表計算ドキュメントの各シートにアクセスするには、Sheets リストを使用します。

次の 2 つのサンプルコードでは、それぞれ番号および名前を使って各シートへアクセスする方法を示します。

例 1: 番号によるアクセス (開始値は 0)

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets (0)

例 2: 名前によるアクセス

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")

最初のサンプルコードでは、シートへのアクセスを番号指定で行なっています (開始値は 0)。次のサンプルコードでは、getByName メソッドにシート名を指定してアクセスしています。

getByName メソッドで取得される Sheet というオブジェクトは、com.sun.star.sheet.Spreadsheet サービスをサポートしています。このサービスは、シート編集用の各種インターフェースを提供するもので、次の属性を利用できます。

IsVisible (Boolean)
スプレッドシートを表示する指定。
PageStyle (String)
スプレッドシート用のページテンプレートの名前。

シートの作成、削除、名前の変更

spreadsheet ドキュメントの Sheets リストは、個々のシートの作成、削除、名前の変更にも使用します。次のサンプルコードでは、hasByName メソッドを用いて MySheet という名前のシートが存在するかをチェックします。そうした名前のシートが存在する場合、getByName メソッドを用いて該当オブジェクトへの参照を取得して、Sheet という変数に収めます。該当するシートが存在しない場合は、createInstance メソッドを用いてこれを新規作成して、insertByName メソッドにより表計算ドキュメントに挿入します。

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
If Doc.Sheets.hasByName("MySheet") Then
   Sheet = Doc.Sheets.getByName("MySheet")
Else
   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
   Doc.Sheets.insertByName("MySheet", Sheet)
End If

API について」で説明したように、getByName および insertByName メソッドは com.sun.star.container.XnameContainer インターフェースから提供されています。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools