【VBA】最後のセルを取得する

【VBA】最後のセルを取得する

VBAのツールを作っている際に、入力されている最後のセルを知りたいということがありますね。

調べてみると、先人たちが色々なテクニックを駆使していたのですが、結局マクロの記録からコードを生成してヒントを得ました。

実際に行った動作は、[Ctrl+End]です。

マクロの記録を実行すると、このようなコードが生成されました。

Sub Macro1()
'
' Macro1 Macro
'
'
    ActiveCell.SpecialCells(xlLastCell).Select
End Sub

「SpecialCells(xlLastCell)」について調べてみると、引数で指定された条件のセルを取得するメソッドのようです。

https://msdn.microsoft.com/ja-jp/library/office/ff196157.aspx

今回は引数に最後のセルを渡して、そのセルを選択しているようです。

つまり、行数と列数を取得する場合はこのように書くことができます。

    Dim rowSize, colSize
    Dim lastCell

    ' 最後のセルを取得する
    Set lastCell = ActiveCell.SpecialCells(xlLastCell).Select
    ' 列・行を取得する
    rowSize = lastCell.row
    colSize = lastCell.column

上のURLにはOffice2013以降と書いてあるため、注意が必要ですね。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です