エクセルマクロで、最終行を取得するコードを記載しています。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
最終行を取得(End(xlUp)使用)
以下のマクロを実行すると、指定した列の最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
'A列の最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "最終行は " & lastRow & " です。"
End Sub
A列の最終行を取得します。
最終行を取得(End(xlUp)使用 シート指定)
以下のマクロを実行すると、指定シートの最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
Dim targetSheet As Worksheet
' Sheet1を指定
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' A列の最終行を取得
lastRow = targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Row
MsgBox "最終行は " & lastRow & " です。"
End Sub
「Sheet1」のA列の最終行を取得します。
最終行を取得(UsedRange使用)
以下のマクロを実行すると、使用範囲の最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
'最終行を取得
lastRow = ActiveSheet.UsedRange.Rows.Count
MsgBox "最終行は " & lastRow & " です。"
End Sub
UsedRangeの行数を取得して、最終行の番号を得ます。
UsedRangeは、ワークシート上で使用されているセルの範囲を表します。
この範囲は、実際にデータが入力されているセルや書式が設定されているセルなど、
ワークシート上で利用されているセルの範囲を含みます。
データが含まれる範囲が連続的である場合や、
使用済みセルの範囲を基に最終行を取得したい場合に適しています。
最終行を取得(UsedRange使用 シート指定)
以下のマクロを実行すると、指定シートの最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
Dim targetSheet As Worksheet
' Sheet1を指定
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' 指定したシートの最終行を取得
lastRow = targetSheet.UsedRange.Rows.Count
MsgBox "最終行は " & lastRow & " です。"
End Sub
UsedRangeの行数を取得して、「Sheet1」の最終行の番号を得ます。
最終行を取得(SpecialCellsメソッド使用)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastCell As Range
' 最終セルを取得
Set lastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
MsgBox "最終行は " & lastCell.Row & " です。"
End Sub
SpecialCells(xlLastCell)メソッドを使って、最終セルを取得します。
SpecialCells(xlLastCell)は、
ワークシート上で実際にデータが入力されている最終のセルを取得します。
最終行を取得(SpecialCellsメソッド使用 シート指定)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastCell As Range
Dim targetSheet As Worksheet
' Sheet1を指定
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' 指定したシートの最終セルを取得
Set lastCell = targetSheet.Cells.SpecialCells(xlLastCell)
MsgBox "最終行は " & lastCell.Row & " です。"
End Sub
SpecialCells(xlLastCell)メソッドを使って、最終セルを取得します。
SpecialCells(xlLastCell)は、
ワークシート上で実際にデータが入力されている最終のセルを取得します。
最終行を取得(CurrentRegionメソッド使用)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
' 最終行を取得
lastRow = Range("A1").CurrentRegion.Rows.Count
MsgBox "最終行は " & lastRow & " です。"
End Sub
Range(“A1”)を基準セルとして指定し、
CurrentRegionを使って そのセルから連続した範囲を取得します。
その後、取得した範囲の行数を取得することで最終行を得ます。
最終行を取得(CurrentRegionメソッド使用 シート指定)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
Dim targetSheet As Worksheet
' Sheet1をtargetSheetに格納
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' targetSheetのA1セルを基準にして最終行を取得
lastRow = targetSheet.Range("A1").CurrentRegion.Rows.Count
MsgBox "最終行は " & lastRow & " です。"
End Sub
「Sheet1」のA列の最終行を取得します。
最終行を取得(Find使用)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
Dim lastCell As Range
' A列の最終セルを取得
lastRow = Columns("A").Find("*", , , , xlByRows, xlPrevious).Row
MsgBox "最終行は " & lastRow & " です。"
End Sub
Find メソッドは、条件に一致するセルを見つけた場合、
そのセルを返し Rowプロパティを使って そのセルの行番号を取得しています。
.Find(“*”, , , , xlByRows, xlPrevious)を使用して、
A列で非空セル(”*”)を後ろ向き(xlPrevious)に検索します。
最終行を取得(Find使用 シート指定)
以下のマクロを実行すると、最終行を取得します。
Sub 最終行を取得()
Dim lastRow As Long
Dim lastCell As Range
Dim targetSheet As Worksheet
' Sheet1を指定
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' A列の最終セルを取得
lastRow = targetSheet.Columns("A").Find("*", , , , xlByRows, xlPrevious).Row
MsgBox "最終行は " & lastRow & " です。"
End Sub
「Sheet1」のA列の最終行を取得します。
この記事がお役に立ちますと幸いです。
「スラスラ読める Excel VBAふりがなプログラミング」
プログラムの読み方をすべて載せる(ふりがなをふる)」という手法で究極のやさしさ!
マクロを考える応用問題も用意しているため、ExcelVBAの基礎を身につけることができます