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


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

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

スライサーの方がデータを
・どのように絞っているのか
・視覚的に分かりやすい
です!
VBAコード
ここでは例として
・シート「data」上のテーブル「productテーブル」に
・商品名のスライサーを作成
します。
※ここで言っている「商品名」はテーブル化されている表の「列名」です。

Option Explicit
Sub setSlicer()
Dim sheet As Worksheet
Dim table As ListObject
Dim slicerRange As range
Dim slicerCache As slicerCache
Dim slicer As slicer
'テーブルが存在するシートを指定
Set sheet = Worksheets("data")
'作成するスライサーの配置位置とするセルを指定
Set slicerRange = sheet.range("F2:G7")
'作成するスライサーのシート上のテーブルを取得
Set table = sheet.ListObjects("productテーブル")
'スライサーキャッシュ(スライサー設定情報)を取得
Set slicerCache = ThisWorkbook.SlicerCaches.Add(table, "商品名")
'スライサーを作成
Set slicer = slicerCache.Slicers.Add(sheet, _
top:=slicerRange.top, _
left:=slicerRange.left, _
Width:=slicerRange.Width, _
Height:=slicerRange.Height)
End Sub
実行結果
シート上のテーブルにスライサーを作成できました。

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

参考①
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Workbookオブジェクト」の「SlicerCaches」プロパティ
●「SlicerCachesオブジェクト」の「Add」メソッド
●「SlicerCacheオブジェクト」の「Slicers」プロパティ
●「Slicersオブジェクト」の「Add」メソッド
参考②
シート上の表をテーブル化する方法は、以下の記事をご確認ください。