スポンサーリンク

【VBA】テーブルの列を追加・削除する方法(ListColumns.Add/Delete)

Excelのテーブル(ListObject)を使うとき、行だけでなく 列の追加・削除 を自動化したい場面もあります。
例えば「新しい項目を追加する」「不要な列を削除する」などの処理です。

VBAでは ListColumns.Add と ListColumns.Delete を使うことで、簡単に列を操作できます。


スポンサーリンク

1. ListColumns.Add で列を追加する

テーブルの列は ListColumns プロパティで管理されています。
その中に新しい列を追加するには Add メソッドを使います。

基本構文

ListObject.ListColumns.Add(Position)
  • Position(省略可)
    追加する位置を指定します。
    • 省略時 → 最後に追加
    • 数値指定 → 指定した列番号の前に追加される

サンプルコード(最後に列を追加)

Sub テーブル列追加_最後()
    Dim ws As Worksheet
    Dim lo As ListObject
    Dim newCol As ListColumn
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set lo = ws.ListObjects("Table1")
    
    '最後に新しい列を追加
    Set newCol = lo.ListColumns.Add
    
    '列名を設定
    newCol.Name = "備考"
End Sub

このコードを実行すると、テーブルの末尾に「備考」という新しい列が追加されます。


サンプルコード(2列目に挿入)

Sub テーブル列追加_途中()
    Dim ws As Worksheet
    Dim lo As ListObject
    Dim newCol As ListColumn
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set lo = ws.ListObjects("Table1")
    
    '2列目に新しい列を挿入
    Set newCol = lo.ListColumns.Add(2)
    
    '列名を設定
    newCol.Name = "カテゴリ"
End Sub

この場合、2列目に「カテゴリ」列が追加され、以降の列は1つ右にシフトされます。


スポンサーリンク

2. ListColumns.Delete で列を削除する

列の削除は ListColumns(列番号 or 列名).Delete で実行できます。


サンプルコード(2列目を削除)

Sub テーブル列削除_番号指定()
    Dim ws As Worksheet
    Dim lo As ListObject
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set lo = ws.ListObjects("Table1")
    
    '2列目を削除
    lo.ListColumns(2).Delete
End Sub

サンプルコード(列名で指定して削除)

Sub テーブル列削除_名前指定()
    Dim ws As Worksheet
    Dim lo As ListObject
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set lo = ws.ListObjects("Table1")
    
    '「カテゴリ」という名前の列を削除
    lo.ListColumns("カテゴリ").Delete
End Sub

列名で指定する方法は、列の位置が変わっても確実に削除できるので実務でおすすめです。


スポンサーリンク

3. 実行前後のイメージ

実行前(Table1)

商品名数量日付
商品X102025/10/01
商品Y202025/10/02

列追加(備考を追加)

商品名数量日付備考
商品X102025/10/01
商品Y202025/10/02

列削除(数量を削除)

商品名日付備考
商品X2025/10/01
商品Y2025/10/02

スポンサーリンク

4. 注意点

  • 列を削除すると、その列のデータは完全に失われるので注意
  • 列名で指定するほうが安全(列位置が変わっても対応可能)
  • 数式列や書式も削除対象になるため、必要に応じてバックアップを推奨

5. まとめ

  • ListColumns.Add → テーブルに新しい列を追加できる(末尾/任意の位置)
  • ListColumns.Delete → 列番号または列名で削除可能
  • 列名指定で削除する方法が実務では安全でおすすめ

コメント

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