小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2023年9月19日【ID:0】

【ExcelVBA】表の最終行の行番号を取得する方法


VBAで何かを開発する際に、表の最終行の行番号を取得することが結構あります。
そんな最終行の取得方法には色んな方法があります。

こちらでは、4パターンをお伝えし、それぞれのメリット・デメリットをまとめています。

最終行の取得方法は、以下のlastRow1からlastRow4などの方法があります。
これ以外にも色んな方法がありますが、今回はこちらの4パターンについて触れていきます。
※こちらのファイルは配布しています。

では、順番にメリット・デメリットをまとめていきます。


・lastRow1

lastRow1 = Cells(Rows.Count, "A").End(xlUp).Row

こちらは、A列のシートの最後のセル「A1048576※最後の行番号はバージョンによって異なる」から「Ctrl+↑(カーソルキー)」で移動した先のセルの行番号を取得するという方法です。
「Ctrl+↑」で、次に値の入力されているセルまで移動することができます。

メリットは、必ず値の入力されている項目がある場合は、その項目の列を基準に正しい最終行の行番号を取得することができます。
表の間に空白行があったとしても、最終行を取得することができます。

デメリットは、必ず値の入力されている項目がない場合は、正しい最終行の行番号を取得することができないことです。
例えば、以下の表の場合、A列を基準に最終行の行番号を取得すると「11」になってしまいます。

Excel本紹介

・lastRow2

lastRow2 = Range("A1").End(xlDown).Row

こちらは、A列の先頭「A1」から「Ctrl+↓(カーソルキー)」で移動した先のセルの行番号を取得するという方法です。

メリットは、単純にコードを短く書くことができます。

デメリットは、データが0件の場合や、空白行がある場合に正しい行番号を取得することができません。
0件の場合は、「Ctrl+↓」ですと、次に値が入力されているセルが見つからないため、シートの最後の行番号が取得されてしまいます。

ExcelVBAレベル確認

・lastRow3

lastRow3 = Range("A1").SpecialCells(xlLastCell).Row

こちらは、シート上で使用されたことがあるセル範囲の最後の行番号を取得するという方法です。
使用されたことがあるセル範囲は、セルA1を基準に「Ctrl + Shift + End」で選択される範囲になります。

メリットは、必ず値の入力されている項目がなくても、最終行の行番号を取得することができます。

デメリットは、"使用されたことがあるセル範囲"のため、データが削除された場合に、正しい最終行の行番号を取得することができません。


・lastRow4

lastRow4 = Range("A1").CurrentRegion.Rows.Count

こちらは、現時点で使用されているセル範囲から行数を取得するという方法です。
表の中を選択し、「Ctrl+A」で選択される範囲の行数を取得しています。

メリットは、lastRow3と同様に、必ず値の入力されている項目がなくても、最終行の行番号を取得することができます。

デメリットは、空白行がある場合には、正しい最終行の行番号を取得することができません。


それぞれにメリットとデメリットがあるため、それらを理解した上で、活用するのが良いです。
個人的には、lastRow1とlastRow4の方法がオススメになります。

▼サンプルファイル▼


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
1分で読める小技集 1分で読める小技集





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

2262841

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】数式を表の下まで一発でコピー

【Excel】ピボットテーブルで集計値の大きい順にする

【Excel】セルに分数を入力する

【Excel】注釈を自動で目立たせる

【Excel】簡易的な検索機能を数式のみで実現

【Excel】複数の行(列)の幅を一括で調整

【ExcelVBA】ON・OFFボタンを開発

【Excel】ピボットテーブルの意外と知られていない小技3選

【Excel】最終行のデータを抽出する新関数

【Excel】Officeクリップボードを活用したメモ

【Excel】指定日以降でないと入力できない設定

【Excel】IFS関数で「その他」を表現

【Excel】指定した値以外のデータを瞬時に削除

【Excel】入力値に応じて入力必須項目を変更

【Excel】同じ名前のファイルを同時に開く方法

【Excel・Googleスプレッドシート】セルの数式を瞬時に確認

【Excel】FILTER関数で離れている列を抽出

【Excel】特定の文字を基準に列を分割

【Excel】日付の特殊なオートフィルの活用

【Excel・Googleスプレッドシート】ExcelファイルをGoogleスプレッドシートで開くと…!?

【Excel】商品ごとの販売数の合計を瞬時に集計

【Excel】長い数式を改行して見やすくする

【Excel】改行を保持しながら値を参照する

【Excel】特定の項目での重複データを削除

【Excel】マトリックス表の見出しの作成方法





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ