Vba最終行の取得で失敗する原因は?ズレを防ぐ決定打と状況別テンプレ

Vba最終行の取得で失敗する原因は?ズレを防ぐ決定打と状況別テンプレに関する知りたいポイントを徹底的にまとめました。要点を確実におさえることができます。

実務の現場では、単一列の判定だけでは完結しない複雑なデータ構造が日常的に登場します。代表的な応用パターンを整理しました。

複数列の中で最大の最終行を割り出す
A列・B列・C列それぞれで行数が異なる場合、各列の最大値を比較して取得します。

Dim maxRow As Long Dim col As Variant For Each col In Array("A", "B", "C") maxRow = Application.Max(maxRow, ws.Cells(ws.Rows.Count, col).End(xlUp).Row) Next col

Excelテーブル(ListObject)のデータ末尾を取得する
構造化されたテーブルを扱う場合、シート行ではなくテーブルオブジェクトを直接操作するのが安全です。

Dim tbl As ListObject Set tbl = ws.ListObjects("売上データ") ' テーブル全体の最終シート行番号 Dim tblLastRow As Long tblLastRow = tbl.Range.Row + tbl.Range.Rows.Count - 1

最終「列」番号を取得する構文
横方向に伸びるデータの場合、行と同様に右端から左方向へ探索を行います。Columns.CountとxlToLeftを組み合わせることで、最右列の位置を瞬時に特定できます。

Dim lastCol As Long lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

伊藤 翔太

伊藤 翔太

フード&トラベルライター

マネー知識やキャリア形成に役立つノウハウを、初心者にも分かりやすく解説するのが得意です。

Share this article
Twitter Facebook Pinterest