Excelでマクロを使用する際、最終行の取得は非常に重要なスキルです。データ範囲の特定やセル操作の効率化に欠かせない技術といえるでしょう。本記事では、VBAを使って最終行を取得する2つの方法を詳しく解説します。それぞれの方法の特徴や使い分けについても触れていきますので、ぜひ最後までお読みください。

今回はこのExcelシートを例に話を進めていくよ!
シート名:データ


1. 最終行を取得する基本的な方法
最も一般的な最終行の取得方法は、Cells(Rows.Count, "A").End(xlUp).Row
を使用する方法です。
Sub sb指定列の最終行を取得する()
'変数宣言
Dim wsデータ As Worksheet
Set wsデータ = Worksheets("データ")
'最終行を取得する
Dim 指定列の最終行 As Long
指定列の最終行 = wsデータ.Cells(wsデータ.Rows.Count, "B").End(xlUp).Row
'メッセージを表示する
MsgBox 指定列の最終行
End Sub
▼ 実行結果


この方法は、指定した列(この場合はB列)の一番下から上に向かって最初にデータがある行を探します。シンプルで分かりやすい方法ですが、空白行がある場合に正確な結果が得られない可能性があります。
2. UsedRangeを使用した方法
UsedRange
プロパティを使用すると、ワークシートで使用されている範囲の最終行を取得できます。
Sub sbシートの最終行を取得する()
'変数宣言
Dim wsデータ As Worksheet
Set wsデータ = Worksheets("データ")
'最終行を取得する
Dim シートの最終行 As Long
シートの最終行 = wsデータ.UsedRange.Rows.Count + wsデータ.UsedRange.Row - 1
'メッセージを表示する
MsgBox シートの最終行
End Sub
この方法は、シート全体で使用されているセル範囲を考慮するため、特定の列に依存しない利点があります。ただし、過去に使用されたセルも含まれてしまう可能性があるので注意が必要です。
▼ 実行結果
使用されているセル範囲なので、罫線や塗りつぶしも含みますので注意が必要です!


まとめ
最終行の取得は、Excelマクロを効率的に使用する上で非常に重要なスキルです。本記事で紹介した2つの方法をマスターすることで、様々な状況に対応できるようになります。初心者の方は、まず基本的な方法から始めて、徐々に他の方法も試してみてください。データの特性や処理の目的に応じて、最適な方法を選択することが大切です。
Excelマクロの世界は奥が深く、学ぶべきことがたくさんあります。最終行の取得をマスターしたら、次は他の便利な関数やテクニックにも挑戦してみてください。VBAの力を借りて、より効率的なExcel作業を目指しましょう。

