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 メソッドを活用することで、ユーザー操作なしにデータを動的に登録でき、業務効率化やフォーム自動化にもつながります。
ルーチン処理の自動化や入力ミスの防止にも有効ですので、ぜひ本記事の方法を取り入れてみてください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
