VBAで
・ピボットテーブルにスライサーを作成
できます!
スライサーは
・オートフィルタをより便利にしたモノ
です!
スライサーもオートフィルタも
・データを絞るためのモノ
です!
スライサーの方がデータを
・どのように絞っているのか
・視覚的に分かりやすい
です!
VBAコード
ここでは例として、
・シート「pivot」上のピボットテーブル「サンプルピボット」に
・担当者のスライサーを作成
します。
※ここで言っている「担当者」はピボットテーブルの元データの「列名」です。
Option Explicit
Sub createPivotSlicer()
Dim pivotSheetName As String
Dim pivoTableName As String
Dim slicerRange As Range
Dim pivotTable As pivotTable
Dim pivotCache As pivotCache
Dim slicerCache As slicerCache
Dim slicer As slicer
'ピボットテーブルがあるシート名
pivotSheetName = "pivot"
'ピボットテーブル名
pivoTableName = "サンプルピボット"
'スライサーを配置するセル
Set slicerRange = Worksheets(pivotSheetName).Range("G2:H7")
'ピボットテーブルを取得
Set pivotTable = Worksheets(pivotSheetName).PivotTables(pivoTableName)
'ピボットキャッシュを取得
Set pivotCache = pivotTable.pivotCache
'スライサーキャッシュ(スライサー設定情報)を取得
Set slicerCache = ThisWorkbook.SlicerCaches.Add(pivotTable, "担当者")
'スライサーを作成
Set slicer = slicerCache.Slicers.Add(Worksheets(pivotSheetName), _
Top:=slicerRange.Top, _
Left:=slicerRange.Left, _
Width:=slicerRange.Width, _
Height:=slicerRange.Height)
End Sub
実行結果
ピボットテーブルにスライサーを作成できました。
例えば「太田」をクリックすると、ピボットテーブルが「太田」で絞られます。
参考①
ピボットテーブルの作成、更新をすることもできます。
詳細は以下の記事をご確認ください。
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください。
●「Worksheetオブジェクト」の「PivotTables」メソッド
●「PivotTableオブジェクト」の「pivotCache」メソッド
●「Workbookオブジェクト」の「SlicerCaches」プロパティ
●「SlicerCachesオブジェクト」の「Add」メソッド
●「SlicerCacheオブジェクト」の「Slicers」プロパティ
●「Slicersオブジェクト」の「Add」メソッド