VBAで列の一番下のセルの行番号を取得する方法【.End(xlUp)の使い方】

目次

はじめに

ExcelでVBAを使って作業を自動化していると、特定の列で最後に入力されているセルの行番号を取得したい場面があります。
私の場合は、「B列の中で最後に値が入力されている行を取得したい」と思い、その方法を調べて実装してみました。

結論から言うと、.End(xlUp)を使うことで、B列の最終入力行を簡単に取得することができました


実現したいこと

  • B列に入力されている中で、一番下の行番号を取得する
  • その行番号を使って、C列に日付を入れるなどの処理に活用する

使用したVBAコード

以下は、実際に使用したコード例です。

Dim xlendrow As Long
Dim endrow As Long

xlendrow = Cells(Rows.Count, 1).Row
endrow = Cells(xlendrow, 2).End(xlUp).Row

コードの解説

1〜2行目:変数の宣言

Dim xlendrow As Long
Dim endrow As Long

xlendrowにはシートの最終行番号を、endrowにはB列の最終入力行を格納するための変数を用意しています。

3行目:Excelの最終行番号を取得

xlendrow = Cells(Rows.Count, 1).Row

ここでは、Excelの仕様上の最終行番号(通常は1048576)を取得しています。
引数の1は列A(=1列目)を指定していますが、ここでは単に最終行の基準として使っているだけです。

4行目:B列の最終入力行を取得

endrow = Cells(xlendrow, 2).End(xlUp).Row

この処理により、B列の下から上に向かって最初に見つかった値のセルの行番号が取得されます。
これが、B列で最後に値が入力されている行になります。


応用:取得した行を使って処理を追加

このendrowを使えば、たとえば以下のようにしてC列に日付を自動入力することもできます。

Cells(endrow, 3).Value = Date

このように、列の末尾を正確に把握することは、処理の自動化や繰り返し処理において非常に役立ちます。


まとめ

.End(xlUp)を使うことで、特定の列の最終入力行を簡単に取得することができます。
このテクニックは、データの追加や入力チェックなど、VBAでのあらゆる場面で活用できます。

今回はB列を例にしましたが、他の列でも同じように使えますので、汎用性の高い方法として覚えておくと便利です。
少しでも参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次