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

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

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


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

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

VBAコード

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

実行前
実行前
Option Explicit

Sub sample()

    Dim ws As Worksheet
    Dim startRange  As Range
    Dim tableName  As String

    '対象シート
    Set ws = Worksheets("data")
    'オートフィルタを設定する表の一番左上のセル
    Set startRange = ws.Range("B2")
    'テーブル名
    tableName = "productテーブル"
    
    'テーブル化(名前定義も実施)
    ws.listObjects.Add(Source:=startRange.CurrentRegion, XlListObjectHasHeaders:=xlYes).Name = tableName
    
End Sub

以下を指定します(10~14行目)。
※状況に応じて任意の値を指定してください。

・対象シート
・オートフィルタを設定する表の一番左上のセル
・テーブル名

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

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

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

PR

実行結果

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

実行後
実行後
PR

参考①

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

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


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


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

PR

参考②

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

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