2/11/2024

Excel。VBA。テーブルに新しいデータを追加したい場合は、通常と異なります。【VBA】

Excel。VBA。テーブルに新しいデータを追加したい場合は、通常と異なります。

<ListRows.Add>

テーブルに設定してある表の最後尾に新しいデータを追加したい場合、通常の表とExcel VBAのプログラム文が異なります。

テーブルに新しいデータを追加

単純に、最後尾に、追加したい場合は、

Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = 入力値

で、追加することができます。


ところが、テーブルだと、うまく入力することができません。

まず、次のプログラム文がつくって、実行してみます。

Sub テーブル追加1()

    Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = "2024/11/6"

    Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = 12345

End Sub


A7にデータが追加されたらば、次の行になってしまいます。


そこで、テーブルの場合には、次のようにプログラム文をつくります。

Sub テーブル追加()

    With ActiveSheet.ListObjects(1).ListRows.Add

        .Range(1) = "2024/11/6"

        .Range(2) = 12345

    End With

End Sub


では、実行してみましょう。


一番下に、データを追加することができました。


では、プログラム文の説明をしていきます。


With文なので、省略しています。

ListRows.Addメソッドで、空の行を追加させています。

追加した行に、

Range(1) = "2024/11/6"

Range(2) = 12345

と値を入力していきます。


テーブルの場合、通常の時のように、きちんと反映できないことがありますので、注意が必要です。