VBAでは、以下のステップで指定した列の最終行を取得することができます。
- 指定した列の一番下のセルから
Ctrl+↑
をする - そのセルがブランクの場合は、そのセルが最終行。ブランクではない場合は、その次の行が最終行。
これを実装したものが以下になります。
Function GetLastRowNumber(sheet As Worksheet, col As String) As Long
Dim lastCell As Range
Set lastCell = sheet.Range(col & sheet.Rows.Count).Cells.End(xlUp)
If lastCell = "" Then
GetLastRowNumber = lastCell.Row
Else
GetLastRowNumber = lastCell.Row + 1
End If
End Function
例: 以下のようなシートがあるとします。
A列・B列・C列の最終行、すなわち1行目・2行目・4行目をGetLastRowNumber
を使って取得します。
Dim sheet As Worksheet
Set sheet = ...
Debug.Print GetLastRowNumber(sheet, "A") '=> 1
Debug.Print GetLastRowNumber(sheet, "B") '=> 2
Debug.Print GetLastRowNumber(sheet, "C") '=> 4
環境情報