Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » 最終行を取得するVBAのコード

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel vba 最終行取得」
「エクセル vba 最終行の取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

VBA(Visual Basic for Applications)で、Excelマクロを作るときに生じる定番の疑問の一つです。

Excel VBAで最終行を取得する方法を探している方による検索です。

[スポンサード リンク]

最終行を取得するサンプルコード

まずは、参考になりそうなコードをご紹介しておきます。


▼最終行の行番号をメッセージボックスに表示するコード
※A列にデータが隙間なく入力されているときに最終行の行番号をメッセージボックスに表示する例

MsgBox Range("A1").End(xlDown).Row

上記のコードを実行すると、A列の最終行の行番号がメッセージボックスに表示されます。

Range("A1").End(xlDown)というコードの意味

Excelでセル選択を行うのにとても便利な[Ctrl]+矢印キーという操作があります。

Excelには、データの途切れるセルがわかっているのです。
データの途切れるセルがわかっているので[Ctrl]+矢印キーというショートカットキーで、データの途切れるセルを選択できるわけです。

そのデータの途切れるセルをVBAで取得するときに利用するのが、RangeオブジェクトのEndプロパティです。

データの途切れる箇所と一言で言っても、4方向あります。
上・下・右・左の4方向です。

どの方向のデータの途切れるセルを取得したいのかを指定するのがEndプロパティの後ろの括弧の中の引数です。
 Range("A1").End(xlDown)
というコードのxlDownが下方向のデータの途切れるセルを意味しています。

右なら、xlToLeft
左なら、xlToRight
上なら、xlUp
を引数に指定してください。

A1セルから下方向のデータの途切れるセル(A列の最終セル)の、行番号を取得するためにRowプロパティを使い
 Range("A1").End(xlDown).Row
というコードにしています。

上記ではメッセージボックスに行番号をいきなり表示するので
 MsgBox Range("A1").End(xlDown).Row
としていますが、その行番号をプロシージャの中で使うのなら
 end_row = Range("A1").End(xlDown).Row
のような形で変数に格納して使うと便利でしょう。

最終行をどうしたいのかでRange("A1").End(xlDown)の後ろは変わります

行番号を使うのではなく、
A列の一番下のセルを選択したいのならば、
 Range("A1").End(xlDown).Select
最終行全体を選択したいのならば、
 Range("A1").End(xlDown).EntireRow.Select
といったコードです。

もし表がB6セルから作ってあるのなら
 Range("B6").End(xlDown).Row
 Range("B6").End(xlDown).Select
 Range("B6").End(xlDown).EntireRow.Select
といったコードです。

これが、Excel VBAで最終行を取得する基本です。

ただし、この基本で最終行を取得できないケースも表のつくり方によっては生じてしまいます。その解決方法については近日中に別記事としてご紹介します。途中に空白セルがある場合に最終行を取得するコードをご紹介しました。2013-09-11)

Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » 最終行を取得するVBAのコード

[スポンサード リンク]
[スポンサード リンク]

TrackBack:9

TrackBack URL
最終行を取得する-空白セルが存在する場合 from インストラクターのネタ帳
Excel VBAで、空白セルが存在する場合に最終行を取得するコードをご紹介しています。
最終列を取得するExcel VBAのコード from インストラクターのネタ帳
データの入力されている最終列を取得するExcel(エクセル)VBAのコードをご紹介しています。
条件に合致した行を削除するマクロ from インストラクターのネタ帳
ワイルドカードとOr演算子を使って条件を指定して、条件に合致した行を削除するExcel(エクセル)マクロをご紹介しています。
8桁の数字を日付に変換するExcelマクロ from インストラクターのネタ帳
yyyymmdd形式の8桁の数字を日付データに変換する、Mid関数とスラッシュを使ったExcelマクロと、Format関数を使ったExcelマクロをご紹介...
データ1件ごとにパワポのスライドにするExcelマクロ from インストラクターのネタ帳
データごとにPowerPoint(パワーポイント)のスライドにするExcel(エクセル)マクロをご紹介しています。
Excelのデータごとにスライドを作成するPowerPointマクロ from インストラクターのネタ帳
アクティブなExcel(エクセル)シートの、データごと・レコードごとにスライドを作成する、PowerPoint(パワーポイント)マクロをご紹介しています。
セル結合されているときに最終行番号を取得する from インストラクターのネタ帳
セルが結合されているときに最終行番号を取得するExcel(エクセル)VBAのコードをご紹介しています。
最終行を取得するGASスクリプト from インストラクターのネタ帳
GoogleスプレッドシートのA列でデータの入力されている最終行番号を取得するGAS(Google Apps Script)をご紹介しています。
VBAで空白セルまでを選択する from インストラクターのネタ帳
対象:Excel2007, Excel2010, Excel2013, Win...

Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » 最終行を取得するVBAのコード

「Rangeオブジェクト」の記事一覧

最近じっくりと読まれている記事

.