エクセルでマクロを作成していると、入力されている最終行や最終列を知りたいという場合が多くあります。
この記事では、最終行・最終列を簡単に取得する方法を取得する方法と、最終行を取得してどのように実践で使うかについてご紹介します。
目次
最終行を取得する・最終列を取得する
最終行、最終列を取得するには、次のコードでそれぞれの値を取得することができます。
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列目の最終行を取得できます。
最終列を取得するコードも行と列が入れ替わるだけで大きな違いはありません。
最後に、取得した値をメッセージボックスで表示します。
最終行を取得するコードの実践例
最終行を取得するコードを使った実践例を挙げたいと思います。
以下のコードは、入力されている最終行を取得し、1行目~最終行まで処理を繰り返すコードになります。
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
■実行結果


解説
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
変数MaxRowに最終行である10が代入されます。
For i = 1 To MaxRow
Cells(i, 1) = Cells(i, 1) & "様"
Next
1行目~10行目まで、セルに入力済みの値に”様”をつける処理を繰り返します。
まとめ
この記事では、
- 最終行と最終列を取得するコード
- 最終行を取得し、最終行まで処理を繰り返すコード
についてご紹介しました。
よく使うコードなのでぜひ覚えて下さい。
最終行取得
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
最終列取得
MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column
コメント