Top > OOobbs2 > 16

OOobbs2/16 Edit

  • サマリ: データの最終行をみつける
  • 環境: Calc
  • 状態: 解決
  • 投稿者: RAKO?
  • 投稿日: 2006-12-14 (木) 13:59:25

質問 Edit

特定の列に飛び飛びでデータがある場合、空白が途中にあっても、最後のデータがあるセルをみつけるには、どうしたらいいで しょうか。Excelでは以下のようなマクロでできますが、Calcではどう書くのでしょうか? 'A列の終端セルの行の取得 e=Worksheets("sheet1").Range("A65536").End(xlUp).Row

回答 Edit

  • Excel のように簡単にはいきそうにありませんが、
A
1AA
2BB
3
4DD
5

上記の表で行 5 を取得するには、

Sub Main
Dim oDoc As Object, oSheets As Object
Dim oSheet As Object, oColumn As Object
Dim oEmptyRange As Object, oLastRange
Dim oRow As Object
Dim nNum As Long
  oDoc = ThisComponent
  oSheets = oDoc.getSheets()
  oSheet = oSheets.getByIndex(0)
  oColumn = oSheet.getColumns().getByName("A")
  oEmptyRanges = oColumn.queryEmptyCells()
  nNum = oEmptyRanges.getCount()
  oLastRange = oEmptyRanges.getByIndex(nNum -1)
  oRow = oLastRange.getCellByPosition(0,0).Rows.getByIndex(0)
  
  oCell = oLastRange.getCellByPosition(0,0)
  msgbox oCell.CellAddress.Column & ":" & oCell.CellAddress.Row
End Sub

oCell のアドレスが列 0, 行 4 なので、oRow が一番下の部分の空セルになっています

queryEmptyCells メソッドについては、

http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangesQuery.html

  • はにゃ?? 2006-12-15 (金) 21:39:18

感想,コメント,メモ Edit

  • ありがとうございました。それにしてもExcelのように簡単ではないんですね。勉強します。 -- RAKO? 2006-12-20 (水) 11:48:17


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