エクセルでVBAを作成していると、入力されている最終行や最終列まで繰返したいという場合が多くあります。この記事では、最終行・最終列を簡単に取得する方法をご紹介します。
最終行を取得する・最終列を取得する
最終行、最終列を取得するには、次のコードでそれぞれの値を取得することができます。
Sub 最終行_最終列取得()
Dim MaxRow As Long
Dim MaxCol As Long
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox "最終行は、" & MaxRow & "行目です。" & vbCrLf & "最終列は、" & MaxCol & "列目です。"
End Sub
■実行結果
■解説
Rows.Countは、エクセルシートの一番最後の行(本当の意味での最終行)を意味しています。私が使っているExcel(Microsoft365のバージョン2307)の場合は、1048576が最終行になります。
Cells(Rows.Count, 1).End(xlUp).Row
はどういうコードかというと、1列目の最終行のセルから上方向に最後まで移動したときの行を表しています。そのため、Cellsの値の1→2変えることで、2列目の最終行を取得できます。
最終列を取得するコードも行と列が入れ替わるだけで大きな違いはありません。
最終行を取得するコードの実践例
冒頭で例に挙げましたが、最終行まで繰り返す処理を行いたい場合などに使えます。
次のコードは、A列に名前が入力されてあり、”様”をつけるコードになります。
Sub 最終行まで繰り返す()
Dim MaxRow As Long
Dim i As Long
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To MaxRow
Cells(i, 1) = Cells(i, 1) & "様"
Next
End Sub
■実行結果
コメント