Difference between revisions of "JA/Documentation/BASIC Guide/Structure of Spreadsheets"
Line 8: | Line 8: | ||
}} | }} | ||
− | 表計算ドキュメントのドキュメントオブジェクトは、<idl>com.sun.star.sheet.SpreadsheetDocument</idl> | + | 表計算ドキュメントのドキュメントオブジェクトは、<idl>com.sun.star.sheet.SpreadsheetDocument</idl> サービスをベースにしています。通常これらのドキュメントには、複数の表 (スプレッドシート) があります。マニュアルで使う用語として、表計算ドキュメント は 1 つのドキュメント全体を意味するものとし、スプレッドシート (略称: シート) は各ドキュメントを構成する個々の表 (テーブル) を意味するものとします。 |
{{Documentation/Note|VBA と {{OOo}} Basic では、スプレッドシートとスプレッドシートの内容に対して、異なった用語が使用されています。VBA のドキュメントオブジェクトは Workbook、個々のページは Worksheets と呼ばれますが、{{OOo}} Basic の場合は SpreadsheetDocument および Sheet と呼ばれています。}} | {{Documentation/Note|VBA と {{OOo}} Basic では、スプレッドシートとスプレッドシートの内容に対して、異なった用語が使用されています。VBA のドキュメントオブジェクトは Workbook、個々のページは Worksheets と呼ばれますが、{{OOo}} Basic の場合は SpreadsheetDocument および Sheet と呼ばれています。}} | ||
− | == | + | ==スプレッドシート== |
表計算ドキュメントの各シートにアクセスするには、<tt>Sheets</tt> リストを使用します。 | 表計算ドキュメントの各シートにアクセスするには、<tt>Sheets</tt> リストを使用します。 | ||
− | + | 次の 2 つのサンプルコードでは、それぞれ番号および名前を使って各シートへアクセスする方法を示します。 | |
− | ''' | + | '''例 1: 番号によるアクセス (開始値は 0)''' |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 28: | Line 28: | ||
</source> | </source> | ||
− | ''' | + | '''例 2: 名前によるアクセス''' |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 38: | Line 38: | ||
</source> | </source> | ||
− | + | 最初のサンプルコードでは、シートへのアクセスを番号指定で行なっています (開始値は 0)。次のサンプルコードでは、<tt>getByName</tt> メソッドにシート名を指定してアクセスしています。 | |
− | <tt> | + | <tt>getByName</tt> メソッドで取得される <tt>Sheet</tt> というオブジェクトは、<idl>com.sun.star.sheet.Spreadsheet</idl> サービスをサポートしています。このサービスは、シート編集用の各種インターフェースを提供するもので、次の属性を利用できます。 |
;<tt>IsVisible (Boolean)</tt>:スプレッドシートを表示する指定。 | ;<tt>IsVisible (Boolean)</tt>:スプレッドシートを表示する指定。 | ||
;<tt>PageStyle (String)</tt>:スプレッドシート用のページテンプレートの名前。 | ;<tt>PageStyle (String)</tt>:スプレッドシート用のページテンプレートの名前。 | ||
− | === | + | ===シートの作成、削除、名前の変更=== |
− | <tt> | + | <tt>spreadsheet</tt> ドキュメントの <tt>Sheets</tt> リストは、個々のシートの作成、削除、名前の変更にも使用します。次のサンプルコードでは、<tt>hasByName</tt> メソッドを用いて '''MySheet''' という名前のシートが存在するかをチェックします。そうした名前のシートが存在する場合、<tt>getByName</tt> メソッドを用いて該当オブジェクトへの参照を取得して、<tt>Sheet</tt> という変数に収めます。該当するシートが存在しない場合は、<tt>createInstance</tt> メソッドを用いてこれを新規作成して、<tt>insertByName</tt> メソッドにより表計算ドキュメントに挿入します。 |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 64: | Line 64: | ||
</source> | </source> | ||
− | 「<tt>getByName | + | 「[[Documentation/BASIC Guide/API Intro| API について]]」で説明したように、<tt>getByName</tt> および <tt>insertByName</tt> メソッドは <idl>com.sun.star.container.XnameContainer</idl> インターフェースから提供されています。 |
{{PDL1}} | {{PDL1}} | ||
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Structure of Spreadsheets}} | {{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Structure of Spreadsheets}} |
Revision as of 22:09, 27 November 2008
表計算ドキュメントのドキュメントオブジェクトは、com.sun.star.sheet.SpreadsheetDocument サービスをベースにしています。通常これらのドキュメントには、複数の表 (スプレッドシート) があります。マニュアルで使う用語として、表計算ドキュメント は 1 つのドキュメント全体を意味するものとし、スプレッドシート (略称: シート) は各ドキュメントを構成する個々の表 (テーブル) を意味するものとします。
スプレッドシート
表計算ドキュメントの各シートにアクセスするには、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). |