行と列

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


個々のシートは、複数の行と列から構成されています。これらは、スプレッドシートオブジェクトの 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
Documentation note.png 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).
Personal tools