エクセルで、シートにあるデータの最終行を取得するVBAを紹介します。
このVBAは、超々々々!!!使用しています。というか、使用しないではいられません。

最終行の取得ってなんですか?



最終行の取得というのは、〇列目で、データが入力されている最後の行数を求めることをいいます。


例1.〇列目の1~100行までデータが入っている場合、その列の1行目にセルにカーソルを当て、 Ctrl + ↓ を押すと連続したデータの一番下、つまり100行目にカーソルが移動します。最終行は100となります。
Sub 最終行の取得()
Dim e as Long
e = Worksheets(“sheet1”).Range(“A1”).End(xlDown).Row
’sheet1のA列においてA1から下へ向かってデータが入力されている最終行を求める
End sub
例1の場合、e = 100 となります。



ただしこの方法だと、データの途中に空白のセルが存在する場合、その空白セルでデータが終わりだと判断してしまいます。
Ctrl + ↓ も同じです。



途中に空白のセル?



例えば次のような場合です。
例2.〇列目の1~60行、62行~100行にデータが入っている場合、その列の1行名にセルにカーソルを当て、 Ctrl + ↓を押すと空白のセルの一つ上、つまり60行目にカーソルが移動します。最終行は60となります。( e = 60 )
例2の場合、ほとんどは100という結果が欲しいはずですので、欲しい結果ではないことになります。


データ内に空白のセルが存在する可能性がゼロでない場合の、最終行を取得するVBA
Sub 最終行の取得()
Dim e as Long
e = Worksheets(“sheet1”).Cells(Rows.Count, 1).End(xlUp).Row
’sheet1のA列においてA列の最終行から上へ向かってデータが入力されている最終行を求める
End sub
ちなみに最終列を求めるVBAはこちらです。
Sub 最終列取得()
Dim e as Long
e = Worksheets(“sheet1”).Range(“A1”).End(xlToRight).Column
End sub



最終行を取得するVBAの紹介でした。
コメント