小技集

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



2023年9月19日【ID:0】

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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


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

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

最終行の行番号を取得する方法

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

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

ExcelVBAレベル確認

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の方法がオススメになります。

▼サンプルファイル▼


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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


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





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

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


- 人気の記事 -



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



サイト累計閲覧数

6691010

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

Excel完全制覇


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

【Excel】表示されているセルのみ集計

【Excel】実は数式内にコメントを残せます

【Windows】隠し機能「GodMode」の作成方法

【ExcelVBA】ダブルクリックで塗りつぶしとリセットを繰り返す

【Excel】重複した値をマークする

【Excel】ピボットテーブルの表示形式

【Excel】スピルを活用して品名単位で数量を集計

【Excel】数式の引数に途中の行から最終行までを指定

【Excel】表の最終行を瞬時に選択

【Excel】「文字列の数字」が入力されたセルを色付け

【ExcelVBA】保存時に自動でバックアップファイルを作成

【Excel】フィルターの設定を保存する

【Excel】出社時刻と退社時刻から勤務時間を求める

【Windows】フォルダのアイコンを変更

【Excel】グラフのラベルテキストを改行する

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

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

【Excel】先頭の「0」を維持する簡単な対策

【ExcelVBA】各要素のデータ行を自動で挿入

【Excel】セル参照や数式に名前を付ける「LET関数」

【Excel】分表記を時刻表記(時:分)に変換

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

【Excel】条件付き書式で検索機能を作成

【Excel】文字列の数字を一括で数値にする

【Excel】TRUEとFALSEを理解する





一覧ページへ

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