Top > OOoBasic > Calc > colandrowrange

列と行 Edit

列および行を取り扱います。これらはそれぞれコンテナオブジェクトにまとめられています。コンテナオブジェクトは各セル範囲やセルなどから取得します。そのときコンテナオブジェクトに含まれる行および列は該当する範囲に対応します。

列コンテナ Edit

列コンテナオブジェクトは Columns プロパティで取得します。

Sub columnsrows_1
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oColumns = oSheet.getColumns()
  msgbox oColumns.Count
End Sub

シートオブジェクトはシート全体を示すセル範囲オブジェクトなので 256 の列を含む列コンテナオブジェクトを返します。

列コンテナオブジェクトは com.sun.star.container.XNameAccess インターフェースを利用した名前によるアクセス、com.sun.star.container.XEnumerationAccess インターフェースによる列挙型のアクセス、さらに com.sun.star.table.XTableColumns インターフェースをサポートしています。このインターフェースは com.sun.star.container.XIndexAccess から派生しているので列要素にインデックスでもアクセスできます。

Edit

列オブジェクトは一つの列全体を示すセル範囲オブジェクトです。

Sub columnsrows_2
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oColumns = oSheet.getColumns()
  oColumn = oColumns.getByIndex(0)
  msgbox oColumn.AbsoluteName
End Sub

列はインデックス以外に名前 "A-Z..." で取得できます。また、列挙による取得も出来ます。

列の挿入 Edit

新しく列を挿入できます。com.sun.star.table.XTableColumns インターフェースの insertByIndex メソッドを利用します。

oColumns = oSheet.getColumns()
oColumns.insertByIndex(1,3)

上記ではインデックス 1 の位置に 3 列挿入しています。
列を挿入する前に、挿入位置とその右にある列は右へずらされます。

列の削除 Edit

removeByIndex メソッドで既存の列を削除します。

oColumns = oSheet.getColumns()
oColumns.removeByIndex(1,2)

二番目の引数が、一番目の引数から続けて右へ削除する列の数です。
列を削除すると、削除対象の右にある列は左へ詰められます。

行コンテナ Edit

行コンテナオブジェクトは Rows プロパティで取得します。

Sub columnsrows_5
  oDoc = ThisComponent
  oSheet = oDoc.getSheets.getByIndex(1)
  oRange = oSheet.getCellRangeByName("A1:B3")
  oRows = oRange.getRows()
  msgbox oRows.Count
End Sub

セル範囲から取得した行コンテナオブジェクトには対応する行のみが含まれるため、上記では 1 - 3 の行しか含まれません。

Edit

行はインデックスと列挙により取得できます。また、行オブジェクトも一行全体を示すセル範囲オブジェクトです。

Sub columnsrows_6
  oDoc = ThisComponent
  oSheet = oDoc.getSheets.getByIndex(1)
  oRange = oSheet.getCellRangeByName("A1:B3")
  oRows = oRange.getRows()
  oRow = oRows.getByIndex(0)
End Sub

oSheet.rows として、範囲を経由せずに参照することもできます。
行には列のような A.. といった名前が無いため名前による取得はできません。

行の挿入 Edit

insertByIndex メソッドで挿入します。

oRows.insertByIndex(0,5)

例では、行の最初に 5 行挿入します。
行を挿入する前に、挿入位置とその下にある行は下へずらされます。

行の削除 Edit

removeByIndex メソッドで削除します。

oRows = oSheet.getRows()
oRows.removeByIndex(0,1000)

二番目の引数が、一番目の引数の位置から続けて下へ削除する列の数です。
行を削除すると、削除対象の下にある行は上へ詰められます。
行数へ 0 以下の値を渡すと、ランタイムエラーとなります。

表示 Edit

表示するかどうかは列および行に共通する IsVisible プロパティです。False に設定すると非表示に出来ます。

oRows.IsVisible = False

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes