上図のシートで、データが入力されている最終行と最終列を求めるサンプル
コードを下記に記す :
Sub ExampleGetLastCellPosition()
Dim objSheet As Object
Dim objRange As Object
Dim objCursor As Object
objSheet = ThisComponent.CurrentController.Activesheet
objRange = objSheet.getCellRangeByName("A1")
objCursor = objSheet.createCursorByRange(objRange)
objCursor.gotoEndOfUsedArea(True)
Msgbox("最終行 : " & objCursor.Rows.Count & Chr$(13) & _
"最終列 : " & objcursor.Columns.Count)
データが入力されている最終行、及び、最終列を求める際はgotoEndOfUsedArea メソッドを用いるらしい。また、
objCursor.gotoEndOfUsedArea(True)
の代わりに
objCursor.collapseToCurrentRegion()
としても全く同じ結果が得られたが、理屈はよくわからない。
objCursor.collapseToCurrentRegion()
返信削除はデータが存在する連続したエリアの最終セル位置を返します。
上記のシート例で、セル(G11)にデータをセットして、
2例の違いを確認すれば違いを確認できると思います。