【Excel 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

■実行結果

VBA-最終行・最終列取得
解説

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
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次