セル範囲クエリー 
com.sun.star.sheet.XCellRangesQuery インターフェースのメソッド
このインターフェースのメソッドの返り値は com.sun.star.sheet.XSheetCellRanges インターフェースになります。OOoBasic では com.sun.star.sheet.SheetCellRanges サービスとして利用できます。このサービスはセル範囲コンテナで、複数のセル範囲およびセルを含むことができます。
表示されているセル 
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
空のセル 
queryEmptyCells メソッドで空のセルのみを取得できます。
特定の内容のセル 
queryContentCells メソッドで指定した内容を含むセルのみを取得できます。
メソッドへの引数として com.sun.star.sheet.CellFlags 定数を渡すことになります。以下のとおりです。
CellFlags 定数群 |
VALUE | 1 | 数値 |
DATETIME | 2 | 日付と時間 |
STRING | 4 | 文字列 |
ANNOTATION | 8 | コメント |
FORMULA | 16 | 数式 |
HARDATTR | 32 | 書式 |
STYLES | 64 | スタイル |
OBJECTS | 128 | オブジェクト |
EDITATTR | 256 | セル内容の部分的な書式 |
数式を含むセル 
queryFormulaCells メソッドは数式の結果を指定してセルを取得します。引数に次のフラッグを指定します。
constants .sheet.FormulaResult |
VALUE | 1 | 値 |
STRING | 2 | 文字列 |
ERROR | 4 | エラー |
内容の異なる列 
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
内容の異なる行 
queryRowDifferences は範囲の列ごとに指定した列と比較して異なる範囲を取得します。
内容の同じセル 
参照 
com.sun.star.sheet.XCellRangesQuery