初心者から実務利用者まで
わかりやすいVBA解説サイト
コードサンプル

最終行を求める

指定した列で、データの入っている最終行を取得します。

遥先生
遥先生
ここでいう「最終行」とはそれぞれの列で
データが入っている一番最後の行のことよ。
ひとみさん
ひとみさん
列によって最終行はバラバラなんですね!
この記事でわかること

・最終行の求め方
・なぜ、このコードで最終行が求められるのか

指定した列の最終行を取得します

遥先生
遥先生
アクティブシートの1列目の最終行を取得して
結果をイミディエイトウィンドウに表示します。

最終行を取得するコードの書き方

コードサンプルにおいて最終行を取得するコードは下記の部分です。

最終行 = Cells(Rows.Count, Clm).End(xlUp).Row

なぜ、このコードで最終行が取得できるのか

このコードが最終行を調べる仕組みは
一旦Excelのシートの一番下の行(Excel2016であれば1048576行)を選択し、
その後、1行ずつ行を上に戻ってきて、
何かデータが入っているセルにぶつかった場合、そこを最終行として返します。

遥先生
遥先生
コードを分解して図で見てみましょう。
サンプルと同じ1列目の最終行を調べていくわよ。

まずは「Cells(Rows.Count, Clm)」

Cells(Rows.Count, Clm)は、
その列のシートの最終行を表します。
Excelで「Ctrl+↓」キーを押した時に移動するセルを指します。

次に「End(xlUp).Row」

遥先生
遥先生
一番下のセルから上方向にセルを辿って
一番最初にデータがあったセルで止まるの。

End(xlUp).Row
その列を上方向に進み、一番最初にデータがあったセルを指定します。
Excelで「Ctrl+↑」キーを押した時に移動するセルを指します。

とてもお世話になる最終行取得

最終行取得はほとんどのマクロで使用されているとても便利なコードです。
ぜひ活用してみてください。

ひとみさん
ひとみさん
忘れてしまってもこのサイトから
サンプルをコピーして使えば大丈夫ですね