ピボットテーブルにフィルタを追加する

 

 

Sub test()
' VBAでピボットテーブルにフィルタを追加する


    Dim WS As Worksheet
    Dim PVC As PivotCache
    Dim PVT As PivotTable
    
    Dim myR As Range
    ' 元データ範囲自動取得
    Set myR = Sheets(1).Range("A2").CurrentRegion
    
    ' ピボットテーブル出力シートを追加(最後に)
    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))
    
    ' ピボットテーブルデータソースをセット
    Set PVC = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
                                            SourceData:=myR)
    Set PVT = PVC.CreatePivotTable(TableDestination:=WS.Name & "!R3C1", _
                                            TableName:="ピボットテーブル1")
    ' フィールドのレイアウト設定
    With PVT


        With .PivotFields("地区")
            .Orientation = xlPageField
            .Position = 1
        End With
        
        With .PivotFields("支店名")
            .Orientation = xlRowField
            .Position = 1
        End With
        
        '   集計対象を設定
        .AddDataField .PivotFields("売上高"), "合計 / 売上高", xlSum
    End With
    
End Sub

 

Sub test2()
' VBAでピボットテーブルにフィルタを追加する ”関東”を絞り込む


    Dim WS As Worksheet
    Dim PVC As PivotCache
    Dim PVT As PivotTable
    
    Dim myR As Range
    ' 元データ範囲自動取得
    Set myR = Sheets(1).Range("A2").CurrentRegion
    
    ' ピボットテーブル出力シートを追加(最後に)
    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))
    
    ' ピボットテーブルデータソースをセット
    Set PVC = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
                                            SourceData:=myR)
    Set PVT = PVC.CreatePivotTable(TableDestination:=WS.Name & "!R3C1", _
                                            TableName:="ピボットテーブル1")
    ' フィールドのレイアウト設定
    With PVT


        With .PivotFields("地区")
            .Orientation = xlPageField
            .Position = 1

 

            .CurrentPage = "関東"
        End With
        
        With .PivotFields("支店名")
            .Orientation = xlRowField
            .Position = 1
        End With
        
        '   集計対象を設定
        .AddDataField .PivotFields("売上高"), "合計 / 売上高", xlSum
    End With
    
End Sub

 

Sub test3()
' VBAでピボットテーブルにフィルタを追加する 複数項目を絞り込む


    Dim WS As Worksheet
    Dim PVC As PivotCache
    Dim PVT As PivotTable
    
    Dim myR As Range
    ' 元データ範囲自動取得
    Set myR = Sheets(1).Range("A2").CurrentRegion
    
    ' ピボットテーブル出力シートを追加(最後に)
    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))
    
    ' ピボットテーブルデータソースをセット
    Set PVC = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
                                            SourceData:=myR)
    Set PVT = PVC.CreatePivotTable(TableDestination:=WS.Name & "!R3C1", _
                                            TableName:="ピボットテーブル1")
    ' フィールドのレイアウト設定
    With PVT


        With .PivotFields("地区")
            .Orientation = xlPageField
            .Position = 1

 

            .EnableMultiplePageItems = True
            .PivotItems("近畿").Visible = False
            .PivotItems("九州").Visible = False

        End With
        
        With .PivotFields("支店名")
            .Orientation = xlRowField
            .Position = 1
        End With
        
        '   集計対象を設定
        .AddDataField .PivotFields("売上高"), "合計 / 売上高", xlSum
    End With
    
End Sub

 

 

実行結果

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

参考記事