読者です 読者をやめる 読者になる 読者になる

意外となんとかなる日記

世迷言を心に、綺麗事を頭に

スポンサーリンク

【Excel】VBAでピボットテーブルとスライサーを使う

 ExcelのVBAでピボットテーブルとスライサーを使おうとしたのですが、検索にあまり出てこないのでメモを兼ねて遺しておきます。



 まず、Sheet1にこのようなデータを作成してから、下記のVBAを実行します。
f:id:Suechan:20151023220825p:plain

Sub testPivot()
    Dim sht As Worksheet
    Dim piv As PivotTable
    
    Set sht = Sheets.Add
    
    ' ピボットテーブル
    With sht
        Set piv = ThisWorkbook.PivotCaches.Create(xlDatabase, "Sheet1!R1C1:R7C5", xlPivotTableVersion14).CreatePivotTable(.Cells(1, 1), "ピボット1", , xlPivotTableVersion14)
        With piv
            With .PivotFields("日付")
                .Orientation = xlRowField
                .Position = 1
            End With
            With .PivotFields("分類")
                .Orientation = xlColumnField
                .Position = 1
            End With
            
            .AddDataField .PivotFields("金額"), "合計金額", xlSum
        End With
    End With
    
    ' スライサー
    With ThisWorkbook.SlicerCaches.Add(piv, "日付").Slicers.Add(sht, , "日付_", "日付", 0, 300, 150, 200)
    End With
End Sub


 新しいシートにこのようなピボットテーブルとスライサーが出来上がるはずです。
 f:id:Suechan:20151023222008p:plain


 複数のピボットテーブルを使ってグラフを入れる予定でしたが、時間がなかったので後日に改めます。
 Excel2010と2013で思ったより違いがあったので、戸惑いました。2013で作成しましたが2010でも動くはずです。

スポンサーリンク