UsedRangeを使用して、シート上の最終行と最終列を取得するプロシージャを作成してみます。
Sheet1に下記のようにデータが入力されています。
D列に最終行、5行目に最終列が入力されています。
UsedRangeを使用して、最終行と最終列を取得するgetMaxRowUsedRange
とgetMaxColUsedRange
のコードは以下になります。
Option Explicit
Function getMaxRowUsedRange(sht As Worksheet) As Long
'###################################################################################
'シート内の使用されている最終行を取得する
'-----------------------------------------------------------------------------------
'引数 :sht シートオブジェクト
'戻り値:sht内で使用されている最終行
'###################################################################################
getMaxRowUsedRange = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
End Function
Function getMaxColUsedRange(sht As Worksheet) As Long
'###################################################################################
'シート内の使用されている最終列を取得する
'-----------------------------------------------------------------------------------
'引数 :sht シートオブジェクト
'戻り値:sht内で使用されている最終列
'###################################################################################
getMaxColUsedRange = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column
End Function
Sub test_getLastRowCol()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Sheet1")
Debug.Print sht.Name & "の最終行は" & getMaxRowUsedRange(sht) & "です。"
Debug.Print sht.Name & "の最終列は" & getMaxColUsedRange(sht) & "です。"
Set sht = Nothing
End Sub
test_getLastRowCol
はgetMaxRowUsedRange
とgetMaxColUsedRange
の動作テストを行います。
test_getLastRowCol
を実行すると、シート上の最終行と最終列をイミディエイトウィンドウに出力します。


最終行はD列の「7」が出力されます。
最終列は5行目のH列の列番号「8」が出力されます。