小技集

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



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」になってしまいます。


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

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

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

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


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

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

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

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


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

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

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

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


まとめ

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

▼サンプルファイル▼


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


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





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

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


- 人気の記事 -



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



サイト累計閲覧数

5354224

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

Excel完全制覇


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

【Excel】フリガナを瞬時に自動設定

【Excel】区切られた文字列から文字を抽出

【Excel】住所を簡単に入力する方法

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

【Excel】VBAとOfficeスクリプトのコードを比較(対象行の削除)

【Excel】BYROW(COL)関数でスピル非対応の関数を対応させる

【ExcelVBA】データを入力する度に自動で並べ替え

【Excel】今日の日付の行を色付け

【Excel】日付を和暦で表示する

【Excel】クリック操作で端のセルまで移動

【Excel】設定画面のテキストボックスで矢印キーを使用

【Excel】セル内でスクロール!?

【Excel】グラフの軸の「データのない日付」を非表示にする

【Excel】数式の法則性から間違いを見つける

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

【Excel】数式を短く表現する

【Excel】PHONETIC関数の結果を「ひらがな」にする

【ExcelVBA】シートの「表示・非表示」を瞬時に切り替える

【Excel】テンプレートは便利

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

【Word】「表記ゆれ」を瞬時に修正する方法

【Word】字下げや折り返し位置を調整

【ExcelVBA】不要なシートの見出しの色を自動変更

【Excel】複数の目標値を自動で計算「ソルバー」

【Excel】データバーで特定の値以下の色を変更





一覧ページへ

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