VBA(エクセルマクロ)

【VBA】エクセルマクロで最終行の位置を取得する

no image
Magic Keyboardは膝の上(ラップトップ)でも使えるか?【iPad Proで検証】

iPad Pro用のマジックウキーボードは、お値段が高いです。疾病できない買い物ですよね。 購入前に知りたいと思う人もいると思いますので、検証します。購入を検討している方は是非みてください。 最初に結 ...

続きを見る

■最終行の位置を取得する(空欄セル無視)

 

今回ご紹介するのはデータの最終行の位置を返すコードです。
例えばデータがA2:K10,000の範囲で存在する場合は、最終行である10,000という数値を返します。

どんな時につかえるの

最終行までを範囲選択したい。

しかし、そのデータの最終行がかわってしまうことがあるため、定数で指定できないとき。

 

具体的には

もっと詳しく


本記事のコードを利用すると、下記の表では最終行が9行目のため、9を返します。

今後このデータの行数が増加することがあっても、その最終行を取得します。

 

このコードの利用場面

データに対して繰り返し処理を行う際に、最終行がどこまであるかわからないため、データの範囲を適当にRang(A1:A65000)などにしてしまうと、空白行に対しても無駄な処理をすることになり、当然、無駄な処理時間がかかってしまいます。

Whileステートメントやuntilステートメントを利用して、空白セルの手前まで実行するという方法もありますが、最終行の情報がわかっているとできる処理というのもありますね。

最終行を[変数:LastRow]として取得した場合、今回ご紹介するコードを利用することにより、変数を利用することによって以下のように指定することができます。

 

A列からE列までデータが存在するときに、2行目から最終行の範囲を指定する場合、

Range(Cells(2,1),Cells(LastRow,5)).Select  や

Range("A2:E" & LastRow).Select  として指定することができます。

これにより、最終行のデータが可変するようなデータでも、適切に範囲を取得できます。

 

実際の記述について

このように変数を宣言して、変数に最終行を取得します。

 VBA
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

LastRow=最終行の行数

 

最後に

VBAビギナーの方へ→ 今回変数にLastRowという文字を使っていますが、他の文字に変えてももちろん問題ありません。

 

-VBA(エクセルマクロ)

Copyright© grantish , 2024 All Rights Reserved.