行と列
個々のシートは、複数の行と列から構成されています。これらは、スプレッドシートオブジェクトの Rows および Columns プロパティーを通して使用でき、com.sun.star.table.TableColumns および com.sun.star.table.TableRows サービスをサポートします。
次のサンプルコードでは、FirstCol および FirstRow という 2 つのオブジェクト変数を作成し、それぞれに第 1 列および第 1 行の参照情報を格納させています。
Dim Doc As Object Dim Sheet As Object Dim FirstRow As Object Dim FirstCol As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) FirstCol = Sheet.Columns(0) FirstRow = Sheet.Rows(0)
列オブジェクトは com.sun.star.table.TableColumn サービスをサポートしており、次のプロパティーを利用できます。
- Width (long)
- 100 分の 1 ミリ単位で指定した列幅。
- OptimalWidth (Boolean)
- 列を最適な幅に設定する指定。
- IsVisible (Boolean)
- 列を表示する指定。
- IsStartOfNewPage (Boolean)
- 印刷時に該当列の前で改ページをする指定。
列の幅は、OptimalWidth プロパティーに True を指定した場合のみ、自動的に最適化されます。個々のセル幅が変更されても、そのセルを含む列の幅は変更されません。実際の機能面から見た場合、OptimalWidth はプロパティーではなくメソッドとして分類されるべきものです。
行オブジェクトは com.sun.star.table.RowColumn サービスをベースとしており、次のプロパティーを利用できます。
- Height (long)
- 100 分の 1 ミリ単位で指定した行の高さ。
- OptimalHeight (Boolean)
- 行を最適な高さに設定する指定。
- IsVisible (Boolean)
- 行を表示する指定。
- IsStartOfNewPage (Boolean)
- 印刷時に該当行の前で改ページをする指定。
行の OptimalHeight プロパティーに True を指定した場合、その行に属するセルの高さが変更された際に、行全体の高さが自動的に最適化されます。こうした自動最適化は、Height プロパティーで行の高さを指定すると解除されます。
次のサンプルコードでは、シート内の最初の 5 行に対して高さの自動最適化を設定し、第 2 列を非表示にします。
Dim Doc As Object Dim Sheet As Object Dim Row As Object Dim Col As Object Dim I As Integer Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) For I = 0 To 4 Row = Sheet.Rows(I) Row.OptimalHeight = True Next I Col = Sheet.Columns(1) Col.IsVisible = False
![]() |
Apache OpenOffice Basic では、Rows および Columns のリストには、インデックスを使用してアクセスできます。ただし VBA の場合とは異なり、列のインデックスの開始値は 1 ではなく 0 となります。 |
列および行の挿入と削除
各シート中の列や行へのアクセスおよび、これらの挿入と削除には、Rows および Columns オブジェクトを使用します。
Dim Doc As Object Dim Sheet As Object Dim NewColumn As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) Sheet.Columns.insertByIndex(3, 1) Sheet.Columns.removeByIndex(5, 1)
このサンプルコードでは、insertByIndex メソッドを用いて、シート上の第 4 列に新規列を挿入しています (開始値が 0 なのでインデックス値は 3)。挿入時の第 2 パラメータには、挿入する列数を指定します (この場合は 1)。
次に、removeByIndex メソッドを用いて、第 6 列を削除しています (インデックス値は 5)。この場合の第 2 パラメータには、削除する列数を指定します。
こうした列の処理法は、行に対する挿入や削除の場合も同様で、Columns オブジェクトの代わりに Rows オブジェクトを使用するだけです。
Content on this page is licensed under the Public Documentation License (PDL). |