[VBA,VB.NET,C#,PHP]プログラムTips集

[VBA,VB.NET,C#,PHP]プログラムのちょっとしたテクニック

エクセルVBAで最終行を見つける方法

Excel VBA マクロの最終行を取得

Range.End メソッドで最終行を取得可能

定数名 説明
xlUp -4162 上端
xlDown -4121 下端
xlToLeft -4159 左端
xlToRight -4161 右端
End.EntireRow   指定すると終端の行を取得できます。
Dim r As Range
‘セル「A1」の下端の行を取得
Set r = Range("A1").End(xlDown).EntireRow
r.Select

途中の行に空白セルがある場合は上記の方法で最終行取得ができません。

この場合、空白セルの上のセルが最終行と判定されます。

こういうときはシートの最終行から上端のセルを取得します。

‘エクセルにおける最終行を取得(空白も含めて)
Dim intLast As Integer
intLast  = Rows.Count
‘取得したい列番号を設定(A列⇒1,B列⇒2,C列⇒3,・・・E列⇒5・・・)
Dim intCol As Integer
intCol  = 5
‘最終行を探す(値が入っているセル)
Dim r As Range
Set r = Cells(intLast , intCol ).End(xlUp) 
r.Select

UsedRange で取得した範囲から最終行を取得

Dim r As Range
'使用している範囲を取得
Set r = ActiveSheet.UsedRange