【VBA】ピボットテーブルにスライサーを作成する

VBAで
 ・ピボットテーブルにスライサーを作成
できます!

スライサー
スライサー

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

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

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

PR

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

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

・ピボットテーブルがあるシート名
・ピボットテーブル名
・スライサーを配置するセル

ピボットテーブルを取得します(21行目)。
※「Worksheetオブジェクト」の「PivotTables」メソッドにより、「PivotTableオブジェクト」を取得します。

ピボットキャッシュを取得します(23行目)。
※「PivotTableオブジェクト」の「pivotCache」メソッドにより、「PivotCacheオブジェクト」を取得します。

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

「SlicerCachesオブジェクト」の「Add」メソッドにより、「SlicerCacheオブジェクト」を取得します(26行目)。
※「Add」メソッドの2つ目の引数は「元データの列名」を指定します。上記では「担当者」を指定しています。

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

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

PR

実行結果

ピボットテーブルにスライサーを作成できました。

実行結果
実行結果


例えば「太田」をクリックすると、ピボットテーブルが「太田」で絞られます。

「太田」で絞った結果
「太田」で絞った結果
PR

参考①

ピボットテーブルの作成、更新をすることもできます。

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


PR

参考②

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

●「Worksheetオブジェクト」の「PivotTables」メソッド


●「PivotTableオブジェクト」の「pivotCache」メソッド


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


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


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


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