【VBA関係】VBAでExcelのテーブルに列を挿入する|ListObject/構造化参照|ポテの学習メモ #012
アフィリエイト広告を利用しています。

次のテーブルを操作する。

「販売金額」の右横に列を追加し、「販売金額」に0.9を乗じた金額を表示させる。コードと、その実行結果は次の通り。なお、テーブルのインデックスは1(ListObject(1)
)であることが前提。
Sub AddColumns()
' 変数宣言
Dim ws As Worksheet
Dim tbl As ListObject
Dim rng As Range
Dim new_col As ListColumn
' ワークシートを取得
Set ws = ThisWorkbook.Worksheets(1)
' テーブル(ListObject)を取得
Set tbl = ws.ListObjects(1)
' 列を追加
Set new_col = tbl.ListColumns.Add
new_col.Name = "x0.9"
new_col.DataBodyRange = "=[@販売金額]*0.9"
End Sub

意図通りに追加された。
追加処理を行っているところはここ↓
' 列を追加
Set new_col = tbl.ListColumns.Add
new_col.Name = "x0.9"
new_col.DataBodyRange = "=[@販売金額]*0.9"
処理の手順は次のようになっている。
Set new_col = tbl.ListColumns.Add
- テーブル
tbl
に新しい列を追加し、その列を変数new_col
に格納。
- テーブル
new_col.Name = "x0.9"
- 追加した列のヘッダー名を
"x0.9"
に設定。
- 追加した列のヘッダー名を
new_col.DataBodyRange = "=[@販売金額]*0.9"
- 追加した列の各行のセルに、「販売金額」セルの値に 0.9 を掛ける数式を入力。