メインコンテンツへスキップ
【VBA】UsedRangeで最終行・最終列を取得する

【VBA】UsedRangeで最終行・最終列を取得する

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。

UsedRangeを使用して、シート上の最終行と最終列を取得するプロシージャを作成してみます。

Sheet1に下記のようにデータが入力されています。
D列に最終行、5行目に最終列が入力されています。

UsedRangeを使用して、最終行と最終列を取得するgetMaxRowUsedRangegetMaxColUsedRangeのコードは以下になります。

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_getLastRowColgetMaxRowUsedRangegetMaxColUsedRangeの動作テストを行います。 test_getLastRowColを実行すると、シート上の最終行と最終列をイミディエイトウィンドウに出力します。

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

関連記事

【VBA】セルに色を塗る ColorIndexとColor一覧
·1 分
Programming VBA
【VBA】期間中の営業日数を求める
·2 分
Programming VBA
VBAでcontinue文
·1 分
Programming VBA