【VBA入門】次にデータを入力する行の取得方法まとめ

Excelで自動的に次の空白行にデータを書き込みたい場面は多くございます。特に、既存データの末尾に新しい情報を追加する処理は業務自動化の定番です。

本記事では、VBAで「次のデータ行」を取得する複数の方法をご紹介いたします。


目次

方法1:縦方向に連続したデータの末尾を取得する

Range("A1").End(xlDown).Offset(1).Select

この方法では、セル A1 から下方向にデータが続いている場合、その最終行の1つ下の行が選択されます。連続データが前提です。


方法2:最終行から上方向に検索して次の行を取得

Range("A" & Rows.Count).End(xlUp).Offset(1).Select

こちらは「列Aの最終行から上方向に検索し、データがある最後のセルの次の行を選ぶ」方法です。空白を挟む可能性がある場合に有効です。


方法3:表形式の最下行の次に追加する

Dim entryTable As Range, headerRow As Range
Set entryTable = Range("B2").CurrentRegion
Set headerRow = entryTable.Rows(1)

headerRow.Offset(entryTable.Rows.Count).Value = _
    Array(1004, #7/2/2024#, "Mori Branch", 107908, "Hayashi Kimiko")

このコードは、見出し行の直下からなる表(CurrentRegion)に対して、次の行にデータを1行分追加する例です。


方法4:Find関数で最終データ位置を探して次の行へ

Dim searchCol As Range, lastDataCell As Range
Set searchCol = Range("C1", Range("C1").End(xlDown))

Set lastDataCell = searchCol.Find( _
    what:="*", _
    After:=searchCol.Cells(1), _
    LookIn:=xlValues, _
    SearchDirection:=xlPrevious)

lastDataCell.Offset(1).Value = "Mori Branch"

こちらは、特定列の最終データ位置をFind関数で検索し、その直下に新しいデータを挿入する方法です。より柔軟で安定性の高い手法です。


活用ポイントと注意事項

ポイント解説
xlDown は空白に弱い空白セルがあると期待と異なる位置を返す可能性があります
xlUp を活用した方法が安定下から上に検索する方法は空白行を含むデータに強く、実務向きです
Find は柔軟性が高い表形式以外の構成でも使いやすく、条件に合った検索が可能です

まとめ

「次のデータ行を取得する」という処理は、VBAを使ったExcelの自動化で非常に頻繁に登場します。業務の特性に応じて、適切な手法を選ぶことで、正確かつ効率的な処理が実現できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次