【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"

処理の手順は次のようになっている。

  1. Set new_col = tbl.ListColumns.Add
    • テーブル tbl に新しい列を追加し、その列を変数 new_col に格納。
  2. new_col.Name = "x0.9"
    • 追加した列のヘッダー名を "x0.9" に設定。
  3. new_col.DataBodyRange = "=[@販売金額]*0.9"
    • 追加した列の各行のセルに、「販売金額」セルの値に 0.9 を掛ける数式を入力。
Information

ポイント

[@販売金額]"構造化参照"を使って、"同一行"の「販売金額」セルを参照している。

この記事を書いた人

運営者・ポテ
■人生を追求する凡人■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢■光学・機械系エンジニア(歴20年、内マネジメント10年、特許数件権利化)/副業フリーランスエンジニア■読書・文学愛好■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を研究。■VBAアプリ開発サービス提供中(業務委託 / VBA使用経験20年)■Python愛好(歴5年)■VBAエキスパート「Excel VBA スタンダード」(上級者向け資格)/ Python 3 エンジニア認定基礎(経済産業省「ITスキル標準(ITSS)」に掲載)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です