Top > OOoBasic > Calc > cellrange

セル範囲 Edit

セル範囲を取り扱います。

コピー Edit

セル範囲を別の位置にコピーするには copyRange メソッドを使用します。

copyRange( .table.CellAddress aDestination, 
   .table.CellRangeAddress aSource )

aDestination:コピー先セル左上アドレス
aSource: コピー元アドレス

次の例は最初のシートのセル範囲 "A1:D4" を二番めのシートのセル "F6" にコピーします。

Sub cellrange_1
Dim oDoc As Object, oSheet As Object
Dim aCellAddress As New com.sun.star.table.CellAddress
Dim aCellRangeAddress As New com.sun.star.table.CellRangeAddress

  oDoc = ThisComponent
  oSheet = oDoc.Sheets(0)
  With aCellAddress
    .Sheet = 1
    .Column = 5
    .Row = 5
  End With
  With aCellRangeAddress
     .Sheet = 0
     .StartColumn = 0
     .EndColumn = 3
     .StartRow = 0
     .EndRow = 3
  End With
  oSheet.copyRange( aCellAddress, aCellRangeAddress )
End Sub

XTransferable による方法もあります。

挿入 Edit

セル範囲の挿入には insertCells メソッドを使用します。

insertCells( .table.CellRangeAddress aRange,
        CellInsertMode nMode )

aRange: 挿入する範囲
nMode: 挿入した際の他のセルの振る舞い。次の .sheet.CellInsertMode enum を使用して指定します。

.sheet.CellInsertMode enum
NONE移動しない
DOWN下に移動
RIGHT右に移動
ROWS下側のセルすべてを下に移動
COLUMNS右側のセルすべてを右に移動

移動 Edit

セル範囲を別の位置に移動するには moveRange メソッドを使用します。

moveRange( .table.CellAddress aDestination, 
   .table.CellRangeAddress aSource )

aDestination:移動先セル左上アドレス
aSource: 移動元セル範囲

次の例は最初のシートのセル範囲 "A1:D4" を二番めのシートのセル "F6" に移動します。

Sub cellrange_3
Dim oDoc As Object, oSheet As Object
Dim aCellAddress As New com.sun.star.table.CellAddress
Dim aCellRangeAddress As New com.sun.star.table.CellRangeAddress

  oDoc = ThisComponent
  oSheet = oDoc.Sheets(0)
  With aCellAddress
    .Sheet = 1
    .Column = 5
    .Row = 5
  End With
  With aCellRangeAddress
     .Sheet = 0
     .StartColumn = 0
     .EndColumn = 3
     .StartRow = 0
     .EndRow = 3
  End With
  oSheet.moveRange( aCellAddress, aCellRangeAddress )
End Sub

削除 Edit

セル範囲を削除するには removeRange メソッドを使用します。

removeRange( .table.CellRangeAddress aRange,
      CellDeleteMode nMode )

aRange: 削除するセル範囲
nMode: 削除した際の残りのセルの取り扱い

.sheet.CellDeleteMode enum
NONE移動しない
UP上に移動
LEFT左に移動
ROWS下にあるセルすべてを上に移動する
COLUMNS右側にあるセルすべてを左に移動する

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