Top > OOoBasic > Calc > cellrangesquery

セル範囲クエリー Edit

com.sun.star.sheet.XCellRangesQuery インターフェースのメソッド

このインターフェースのメソッドの返り値は com.sun.star.sheet.XSheetCellRanges インターフェースになります。OOoBasic では com.sun.star.sheet.SheetCellRanges サービスとして利用できます。このサービスはセル範囲コンテナで、複数のセル範囲およびセルを含むことができます。

表示されているセル Edit

queryVisibleCells メソッドで表示されているセルのみを取得できます。セルは行または列ごとに表示と非表示を切り替えることができるので取得されるセルもそれに従います。

Sub cellrangesquery_1
Dim oDoc As Object, oSheet As Object
Dim oRange As Object
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oRange = oSheet.getCellRangeByPosition(0,0,4,4)
  oRanges = oRange.queryVisibleCells()
  msgbox oRanges.RangeAddressesAsString
End Sub

空のセル Edit

queryEmptyCells メソッドで空のセルのみを取得できます。

特定の内容のセル Edit

queryContentCells メソッドで指定した内容を含むセルのみを取得できます。

メソッドへの引数として com.sun.star.sheet.CellFlags 定数を渡すことになります。以下のとおりです。

CellFlags 定数群
VALUE1数値
DATETIME2日付と時間
STRING4文字列
ANNOTATION8コメント
FORMULA16数式
HARDATTR32書式
STYLES64スタイル
OBJECTS128オブジェクト
EDITATTR256セル内容の部分的な書式

数式を含むセル Edit

queryFormulaCells メソッドは数式の結果を指定してセルを取得します。引数に次のフラッグを指定します。

constants .sheet.FormulaResult
VALUE1
STRING2文字列
ERROR4エラー

内容の異なる列 Edit

queryColumnDifferences メソッドはセル範囲の行ごとに、指定した行と比較して異なるセルを取得します。

Sub cellrangesquery_4
Dim oDoc As Object, oSheet As Object
Dim oRange As Object
Dim aCellAddress As New com.sun.star.table.CellAddress
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oRange = oSheet.getCellRangeByPosition(0,0,2,2)
  aCellAddress.Sheet = 0
  aCellAddress.Column = 0
  aCellAddress.Row = 4
  oRanges = oRange.queryColumnDifferences (aCellAddress)
End Sub

内容の異なる行 Edit

queryRowDifferences は範囲の列ごとに指定した列と比較して異なる範囲を取得します。

内容の同じセル Edit

参照 Edit

com.sun.star.sheet.XCellRangesQuery


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