【EXCEL VBA】テーブルに新しい行(データ)を追加する ListRows.Add

スポンサーリンク

テーブルに新しい行(データ)を追加する

テーブル形式のリストにデータを追加する方法を紹介します!

スポンサーリンク

テーブル

テーブルってこんなやつです。

ワークシート上にある表の中に、アクティブセルを置き、「挿入タブ>テーブル」で作れますね。

この”テーブル”ですが、VBAで言うとテーブルにした時点で、”ListObject(リストオブジェクト)”というオブジェクトが作られます。

スポンサーリンク

テーブルに空行を追加する

ListObject(リストオブジェクト)の行データは、ListRowオブジェクトになりますが、そのListRowオブジェクト全体を管理するListRowsコレクションのAddメソッドを使うことで、テーブルの行を追加することが出来ます(^o^)

構文

ListObject.ListRows.Add

では、実際に挙動を確認してみましょう!

次のコードをご覧ください。

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での処理も簡単に出来ることがたくさんあります!

コメント

タイトルとURLをコピーしました