Vba: 最後に使用された行を見つける方法
VBA で次の基本構文を使用すると、Excel シートで最後に使用された行を検索できます。
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
この特定の例では、現在のシートで使用されている最後の行を検索し、結果をセルD2に返します。
メッセージ ボックスの最後の行を表示したい場合は、次の構文を使用できます。
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
次の例は、これらの各メソッドを実際に使用する方法を示しています。
例 1: VBA を使用して最後の行を検索し、結果をセルに表示する
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
次のマクロを作成して、この Excel シートで使用されている最後の行を検索し、結果をセルD2に表示します。
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
このマクロを実行すると、次の出力が表示されます。
セルD2に値11が含まれていることに注目してください。
これは、この特定のシートで使用されている最後の行が行 11 であることを示しています。
使用されているセルの前に空のセルがある場合、このマクロは常に最後に使用された行を検索することにも注意してください。
たとえば、次のデータセットに対してマクロを実行するとします。
セルD2 は値が含まれる最後の行であるため、値16が含まれます。
例 2: VBA を使用して最後の行を検索し、結果をメッセージ ボックスに表示する
代わりに、シート内で最後に使用された行を検索し、その行番号をメッセージ ボックスに表示したいとします。
これを行うには、次のマクロを作成できます。
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスには、シートで使用されている最後の行が行11であることが示されています。
注: VBA Findメソッドの完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。