【VBA】シート上のテーブルにスライサーを作成する

VBAで
 ・シート上のテーブルに
 ・スライサーを作成
できます!

スライサー
スライサー

スライサーは
 ・オートフィルタをより便利にしたモノ
です!

スライサーもオートフィルタも
 ・データを絞るためのモノ
です!

スライサーの方がデータを
 ・どのように絞っているのか
 ・視覚的に分かりやすい
です!

PR

VBAコード

ここでは例として
 ・シート「data」上のテーブル「productテーブル」に
 ・商品名のスライサーを作成
します。
※ここで言っている「商品名」はテーブル化されている表の「列名」です。

シート「data」上のテーブル「productテーブル」
Option Explicit

Sub createTableSlicer()
    
    Dim tableSheet As Worksheet
    Dim tableListObject As ListObject
    Dim slicerRange As Range
    Dim slicerCache As slicerCache
    Dim slicer As slicer
    
    'テーブルが存在するシート
    Set tableSheet = Worksheets("data")
    'スライサーを配置するセル
    Set slicerRange = tableSheet.Range("F2:G7")
    'シート上のテーブルを取得
    Set tableListObject = tableSheet.ListObjects("productテーブル")
    
    'スライサーキャッシュ(スライサー設定情報)を取得
    Set slicerCache = ThisWorkbook.SlicerCaches.Add(tableListObject, "商品名")
    'スライサーを作成
    Set slicer = slicerCache.Slicers.Add(tableSheet, _
                                         Top:=slicerRange.Top, _
                                         Left:=slicerRange.Left, _
                                         Width:=slicerRange.Width, _
                                         Height:=slicerRange.Height)
                                        
End Sub

スライサーを配置するセルを指定します(14行目)。
※上記ではセル「F2~G7」を指定しています。
※状況に応じて任意で変更してください。

「ThisWorkbook」により、「Workbookオブジェクト」を取得します(19行目)。

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

「SlicerCachesオブジェクト」の「Add」メソッドにより、「SlicerCacheオブジェクト」を取得します(19行目)。
※「Add」メソッドの2つ目の引数は「テーブルの項目名」を指定します。上記では「商品名」を指定しています。

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

「Slicersオブジェクト」の「Add」メソッドにより、スライサーを作成します(21~25行目)。

PR

実行結果

シート上のテーブルにスライサーを作成できました。

スライサーを作成
スライサーを作成


例えば「りんご」をクリックすると、シート上のテーブルが「りんご」で絞られます。

「りんご」で絞った結果
「りんご」で絞った結果
PR

参考①

ピボットテーブルにスライサーを作成することもできます。

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

PR

参考②

シート上の表をテーブル化する方法は、以下の記事をご確認ください。

PR

参考③

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

●「Workbookオブジェクト」の「SlicerCaches」プロパティ


●「SlicerCachesオブジェクト」の「Add」メソッド


●「SlicerCacheオブジェクト」の「Slicers」プロパティ


●「Slicersオブジェクト」の「Add」メソッド