【VBA】シート上の表をテーブル化する

例えばシート上の以下の表を…

シート上の表
シート上の表


テーブル化することで、
 ・表にスタイルを設定
 ・テーブル化した表を名前定義
できます!

シートにスタイルの設定
シートにスタイルの設定
テーブル化した範囲を「productテーブル」と名前定義
テーブル化した表を「productテーブル」と名前定義
PR

VBAコード

ここでは例として、
 ・シート「data」上のセル「B2」から始まる表をテーブル化して
 ・テーブル化した表を「productテーブル」と名前定義
します。

実行前
実行前
Sub sample()
    
    With Worksheets("data")
        '対象シートをアクティブにする
        .Activate
        'テーブル化する(名前定義も含む)
        .ListObjects.Add(Source:=Range("B2").CurrentRegion, XlListObjectHasHeaders:=xlYes).Name = "productテーブル"
    End With
    
End Sub

対象のシートを「アクティブ(=Activate)」にします(5行目)。
※上記ではシート「data」を「アクティブ」にしています。
※「アクティブ」とせずに「選択状態」にするとエラーになります。

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

「ListObjects」オブジェクトの「add」メソッドにより、テーブル化します(7行目)。
※「Source」に「テーブル化したい範囲」を指定します。上記では「Range(“B2”).CurrentRegion」としています。
※「XlListObjectHasHeaders:=xlYes」により、1行目が見出しになります。
※「ListObjectオブジェクト」が取得されます。

取得した「ListObjectオブジェクト」の「Name」プロパティに、定義したい名前を設定しています(7行目)。
※上記では「productテーブル」と名前定義しています。

PR

実行結果

シート上の表のテーブル化ができました。

実行後
実行後
PR

参考①

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

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


●「ListObjects」オブジェクトの「add」メソッド


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

PR

参考②

シート上のテーブルにスライサーを作成することもできます。

詳細は以下の記事をご確認ください。

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