【VBA】UsedRangeで最終行・最終列を取得する
UsedRangeを使用して、シート上の最終行と最終列を取得するプロシージャを作成してみます。
Sheet1に下記のようにデータが入力されています。
D列に最終行、5行目に最終列が入力されています。
UsedRangeを使用して、最終行と最終列を取得するgetMaxRowUsedRangeと
getMaxColUsedRangeのコードは以下になります。
1Option Explicit
2
3Function getMaxRowUsedRange(sht As Worksheet) As Long
4'###################################################################################
5'シート内の使用されている最終行を取得する
6'-----------------------------------------------------------------------------------
7'引数 :sht シートオブジェクト
8'戻り値:sht内で使用されている最終行
9'###################################################################################
10
11 getMaxRowUsedRange = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
12
13End Function
14Function getMaxColUsedRange(sht As Worksheet) As Long
15'###################################################################################
16'シート内の使用されている最終列を取得する
17'-----------------------------------------------------------------------------------
18'引数 :sht シートオブジェクト
19'戻り値:sht内で使用されている最終列
20'###################################################################################
21
22 getMaxColUsedRange = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column
23
24End Function
25
26Sub test_getLastRowCol()
27
28 Dim sht As Worksheet
29 Set sht = ThisWorkbook.Worksheets("Sheet1")
30
31 Debug.Print sht.Name & "の最終行は" & getMaxRowUsedRange(sht) & "です。"
32 Debug.Print sht.Name & "の最終列は" & getMaxColUsedRange(sht) & "です。"
33
34 Set sht = Nothing
35
36End Sub
test_getLastRowColはgetMaxRowUsedRangeとgetMaxColUsedRangeの動作テストを行います。
test_getLastRowColを実行すると、シート上の最終行と最終列をイミディエイトウィンドウに出力します。


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