VBAで
・シート上のテーブルに
・スライサーを作成
できます!
スライサーは
・オートフィルタをより便利にしたモノ
です!
スライサーもオートフィルタも
・データを絞るためのモノ
です!
スライサーの方がデータを
・どのように絞っているのか
・視覚的に分かりやすい
です!
VBAコード
ここでは例として
・シート「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
実行結果
シート上のテーブルにスライサーを作成できました。
例えば「りんご」をクリックすると、シート上のテーブルが「りんご」で絞られます。
参考①
ピボットテーブルにスライサーを作成することもできます。
詳細は以下の記事をご確認ください。
参考②
シート上の表をテーブル化する方法は、以下の記事をご確認ください。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Workbookオブジェクト」の「SlicerCaches」プロパティ
●「SlicerCachesオブジェクト」の「Add」メソッド
●「SlicerCacheオブジェクト」の「Slicers」プロパティ
●「Slicersオブジェクト」の「Add」メソッド