VBAでループさせる時どこまでループさせるかを指定する必要がありますね。
今回はVBAで最終行を取得する方法を 分かりやすく詳細に ご紹介します。
最終行を取得する方法
結論からお話しますと、次の記述を使いましょう!
Cells(Rows.Count, 1).End(xlUp).Row
解説
なぜこれで最終行が取得できるのでしょうか。
ひとつひとつ分解して見ていきましょう。
まずはこの部分です。
Cells(Rows.Count, 1)
Cells() は ()の中にセルの 行番号 と 列番号 を入れることでセルを指定します。
たとえば Cells(1, 1) とした時は、 1行目 の 1列目 のセルを表しています。

Rows.Count は シートの1番下の 行番号 です。

1番下の行番号は 1048576 となっていますね。
ですので Cells(Rows.Count, 1) は Cells(1048576, 1) のことです!!

.End(xlUp)
.End(xlUp) は [Ctrl] + 上キー を押す動作と同じです。
Cells(Rows.Count, 1) の位置から [Ctrl] + 上キー を押してみましょう。

セルの位置が一番上に移動しました。
では次に、データが入っている状態でやってみましょう。
次のようなデータが入っているとします。

Cells(Rows.Count, 1) の位置から [Ctrl] + 上キー を押してみましょう。

データが入っている 一番下の行(最終行)に移動 しました!
そして最後にこの記述です。
.Row
これにより指定したセル位置の 行番号を取得 します。

まとめますと
Cells(Rows.Count, 1).End(xlUp).Row
と記述することで
シートの一番下から [Ctrl] + 上キー を押した状態の データが入っている最終行 の行番号
が取得できます。
さいごに
いかがだったでしょうか。
今回はVBAで最終行を取得する方法をご紹介しました。
ループ処理をする場合には必須とも言えますので、ぜひとも理解していきましょう!
今後も丁寧に分かりやすくVBAをご紹介していきますので、よろしくお願いいたします。
コメント