2011年4月26日火曜日

データが入力されている最終行・最終列を求める

  
上図のシートで、データが入力されている最終行と最終列を求めるサンプル
コードを下記に記す :
  
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)
End Sub
  
結果は下図の通り :
  
  
データが入力されている最終行、及び、最終列を求める際は
gotoEndOfUsedArea メソッドを用いるらしい。また、
  
objCursor.gotoEndOfUsedArea(True)
  
の代わりに
  
objCursor.collapseToCurrentRegion()
  
としても全く同じ結果が得られたが、理屈はよくわからない。

1 件のコメント:

  1. objCursor.collapseToCurrentRegion()
    はデータが存在する連続したエリアの最終セル位置を返します。
    上記のシート例で、セル(G11)にデータをセットして、
    2例の違いを確認すれば違いを確認できると思います。

    返信削除