【VBA】テーブル化された表の、指定した列の値のみをクリアする

テーブル化された表の
 ・指定した列の値のみをクリア
できます!
※設定(背景色など)はクリアしません。

PR

VBAコード

ここでは例として、
 ・シート「data」上の
 ・テーブル化された表「productテーブル」の
 ・列「productName」の値のみをクリア
します。

テーブル化された表「productテーブル」。列「productName」には値あり。
テーブル化された表「productテーブル」。列「productName」には値あり。
Option Explicit

Sub sample()
    
    Dim listObj As ListObject
    
    '「productテーブル」を取得
    Set listObj = Worksheets("data").ListObjects("productテーブル")
    '列「productName」の値をクリア
    listObj.ListColumns("productName").DataBodyRange.ClearContents
    
End Sub

「Worksheets(“XXX”)」により、「Worksheetオブジェクト」を取得します(8行目)。

「Worksheetオブジェクト」の「ListObjects」プロパティにより、「ListObjectオブジェクト」を取得します(8行目)。

「ListObjectオブジェクト」の「ListColumns」プロパティにより、「ListColumnオブジェクト」を取得します(10行目)。
※引数に「列名」を指定します。上記では「productName」を指定しています。

「ListColumnオブジェクト」の「DataBodyRange」プロパティにより、「Rangeオブジェクト」を取得します(10行目)。
※この「Rangeオブジェクト」は指定した列のヘッダーを除いたデータ部分を示します。

「Rangeオブジェクト」の「ClearContents」メソッドにより、値のみをクリアします(10行目)。
※「値のみ」でなく「全て(値と設定)」をクリアしたい場合は「Clear」メソッドを使用します。

PR

実行結果

テーブル化された表の、指定した列の値のみをクリアできました。
ヘッダーを除いたデータ部分の値クリアできました。

実行結果
実行結果
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheetオブジェクト」の「ListObjects」プロパティ


●「ListObjectオブジェクト」の「ListColumns」プロパティ


●「ListColumnオブジェクト」の「DataBodyRange」プロパティ


●「Rangeオブジェクト」の「ClearContents」メソッド