データの最終行を取得する。
Sub Macro1 ()
Dim LastRow As Integer
LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
End Sub
Excelの最終行からEnd(xlUp)でデータ最終行まで行って行番号を取得する。
変数LastRowに格納。
解説
Sheet1の1行目の最終行番号を取得する。
LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Sheet1を指定。
Sheets("Sheet1")
Rows.Count はシートの最終行。
1列目の最終行(1048576行目)まで移動。
対象の列を変更する場合は、Rows.Countの後ろの数字を対象列番号に変更する。
.Cells(Rows.Count, 1)
Endモード。(Ctrl + 矢印で移動する状態)
Rowで行番号取得。
.End(xlUp).Row
注意点
最終行を下から数えに行く為、途中にデータが入力されていた場合は、
その行が最終行となってしまう。
4行目を最終行としたいが、7行目に入力されていたため、最終行が7となってしまう。
データに空白がないことが前提。
上から数える方法
上から数える場合はxlDownを使用する。
Sheets("Sheet1").Range("A1").End(xlDown).Row
A1セルからエンドモードで下に数えていく。
※データが一件もない場合、途中で空白がある場合はエラーになる。
変数の変更
一度代入した後に、同じ変数に代入しなおすと、格納されている数値が変更される。
最終行が17だった場合は以下のように変更されていく。
LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row '→17
LastRow = LastRow - 2 '→15
LastRow = LastRow / 5 '→3