テーブルに新しい行(データ)を追加する
テーブル形式のリストにデータを追加する方法を紹介します!
テーブル
テーブルってこんなやつです。
ワークシート上にある表の中に、アクティブセルを置き、「挿入タブ>テーブル」で作れますね。
この”テーブル”ですが、VBAで言うとテーブルにした時点で、”ListObject(リストオブジェクト)”というオブジェクトが作られます。
テーブルに空行を追加する
ListObject(リストオブジェクト)の行データは、ListRowオブジェクトになりますが、そのListRowオブジェクト全体を管理するListRowsコレクションのAddメソッドを使うことで、テーブルの行を追加することが出来ます(^o^)
では、実際に挙動を確認してみましょう!
次のコードをご覧ください。
Sub sample()
'テーブルを変数に格納する
Dim テーブル As ListObject
Set テーブル = ActiveSheet.ListObjects(1)
'捕まえたテーブルのListRowsコレクションに対してAddメソッドを実行
テーブル.ListRows.Add
End Sub
まずは、シート上のテーブルを変数に格納しています。
そして、その捕まえたテーブル(ListObject)のListRowsコレクションに対して、Addメソッドを実行する。
簡単ですね(^o^)
では、実行してみましょう!
テーブルに空の行が追加されていくのが分かりますね(^o^)
実行結果はこちらです。
5回実行したので、5行増えていますね。
追加した行にデータを入力する
実務では、空行を追加するだけではなく、追加した行にデータを入力することがほとんどだと思います。
挿入した空行にデータを追加するには、追加した行を変数に格納して操作するのが便利です。
次のコードをご覧ください。
Sub sample()
'テーブルを変数に格納する
Dim テーブル As ListObject
Set テーブル = ActiveSheet.ListObjects(1)
'捕まえたテーブルのListRowsコレクションに対してAddメソッドを実行
'追加した空行を変数に格納する
Dim 追加した行 As ListRow
Set 追加した行 = テーブル.ListRows.Add
'追加した行にデータを入力する
With 追加した行
.Range(1).Value = "ひらちん"
.Range(2).Value = "ヒラチン"
.Range(3).Value = "男"
.Range(4).Value = "40"
.Range(5) = "1980/1/1"
.Range(6) = "未婚"
.Range(7) = "A型"
.Range(8) = "兵庫県"
End With
End Sub
追加した空行はListRowオブジェクトですが、追加したと同時に、”追加した行”という変数(ListRow型)に格納し、
その後、変数”追加した行”に対してデータを入力しています。
ListRowオブジェクトの中のセルは”Rangeオブジェクト”で表されます。
一番左の列から、1番、2番、、、と番号がついているので、挿入したいデータと番号を合わせて指定しRangeオブジェクトのValueプロパティに設定します。
Valueプロパティは省略しても大丈夫なので、ここではわざと途中から省略しています。
では実行してみましょう!
一番下の行に、データが追加出来ました(^o^)
テーブルを上手く使うことで、VBAでの処理も簡単に出来ることがたくさんあります!
コメント