Excel VBAでテーブルに新しいレコードを追加する方法|ListObject.ListRows.Addの使い方

Excelのテーブル(ListObject)は、構造化された表として非常に便利ですが、VBAからレコード(行)を追加する方法を理解しておくと、入力作業の自動化に大いに役立ちます。

本記事では、VBAを使ってテーブルに「次のレコード」を追加する方法とその具体的なコード例を解説いたします。


目次

想定される活用シーン

  • データ入力フォームから新しい情報をテーブルに追加したい。
  • 外部ファイルやユーザー入力から取得したデータを、既存のテーブル構造に沿って登録したい。
  • テーブルの最後に常に新しいデータを付け加えたい。

基本構文:テーブルに新しいレコードを追加

以下のコードは、「会員データ」というテーブルの最下行に1行追加する基本的な処理です。

Sub AddNewRecord()

    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects("会員データ")

    ' 次のレコードを追加(末尾)
    tbl.ListRows.Add

End Sub

応用:特定位置に行を挿入

2行目に新しいレコードを挿入したい場合は、次のように指定します。

tbl.ListRows.Add 2

※ 既存行の前に挿入されるため、挿入後に行番号がずれる点に注意が必要です。


データを設定して追加する

追加した行に対して、具体的なデータを設定することも可能です。

Sub AddRecordWithData()

    Dim tbl As ListObject
    Dim newRow As ListRow

    Set tbl = ActiveSheet.ListObjects("会員データ")

    ' レコード追加と同時に取得
    Set newRow = tbl.ListRows.Add

    ' 値を配列で一括設定(列順に注意)
    newRow.Range.Value = Array("M1001", "森 太郎", #1/1/2020#)

End Sub

注意点

項目解説
.ListRows.Addテーブルの最下行に空白行を追加します。
.ListRows.Add(position)任意の位置に挿入も可能です。
.Range.Value = Array(...)追加した行に一括でデータを入力できます。
日付形式#1/1/2020# のように、VBAで扱える日付型で入力する必要があります。

まとめ

VBAを使えば、Excelテーブルへのレコード追加も非常に簡単に実装できます。
ListRows.Add メソッドを活用することで、ユーザー操作なしにデータを動的に登録でき、業務効率化やフォーム自動化にもつながります。

ルーチン処理の自動化や入力ミスの防止にも有効ですので、ぜひ本記事の方法を取り入れてみてください。

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

この記事を書いた人

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

目次