UsedRangeを使用して、シート上の最終行と最終列を取得するプロシージャを作成してみます。
Sheet1に下記のようにデータが入力されています。
D列に最終行、5行目に最終列が入力されています。
UsedRangeを使用して、最終行と最終列を取得するgetMaxRowUsedRangeと
getMaxColUsedRangeのコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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」が出力されます。
コメント