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
と値を入力していきます。
テーブルの場合、通常の時のように、きちんと反映できないことがありますので、注意が必要です。