VBA ピボットテーブルにフィルタを追加する
ピボットテーブルにフィルタを追加する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 SubSub 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 SubSub 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基礎入門もくじ へ戻る参考記事『VBA ピボットテーブルの作成』実務では、データ分析といえば、何と言ってもExcelのピボットテーブルでしょう。今日は、ピボットテーブル作成の基本について、見ていきましょう。VBAでピボ…ameblo.jp『VBA セル範囲に名前の定義をする』 実務では、ミス防止や入力時間短縮などのため、セル範囲に名前を定義することがよくあります。今日は、VBAで名前の定義をみてみましょう。セル範囲に名前の定義を…ameblo.jp『VBA ピボットテーブルの削除』今回は、VBAでピボットテーブルの削除について、見ていきましょう。VBAでピボットテーブルを作成Sub test() ' ピボットテーブル初期化 …ameblo.jp『VBA ピボットテーブル 元データ範囲の自動取得』VBAで元データ範囲の自動取得Sub test() '元データ範囲の自動取得 Dim myR As Range ' A2を含むセル範…ameblo.jp『VBA ピボットテーブルの更新』VBAでピボットテーブルの更新Sub test()' ピボットテーブルの更新 ActiveSheet.PivotTables(1).PivotCa…ameblo.jp