[[20160725231133]] 『vbaでのピボット周りの高速化について』(keeton) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vbaでのピボット周りの高速化について』(keeton)

このたびは、初めて投稿させていただきます。

ピボットの表を6つ作り、
各ピボットはフィルターをクリアしたあとにフィルタをかけています。

'pv1

    ActiveSheet.PivotTables("pv1").PivotFields("a1").ClearAllFilters
    ActiveSheet.PivotTables("pv1").PivotFields("a1").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:=Worksheets("sheet1").Range("D5")
    ActiveSheet.PivotTables("pv1").PivotFields("b").ClearAllFilters
    ActiveSheet.PivotTables("pv1").PivotFields("b").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:="1"

'pv2

    ActiveSheet.PivotTables("pv2").PivotFields("a2").ClearAllFilters
    ActiveSheet.PivotTables("pv2").PivotFields("a2").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:=Worksheets("sheet1").Range("D5")
    ActiveSheet.PivotTables("pv2").PivotFields("b").ClearAllFilters
    ActiveSheet.PivotTables("pv2").PivotFields("b").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:="1"

    ActiveSheet.PivotTables("pv3").PivotFields("a3").ClearAllFilters
    ActiveSheet.PivotTables("pv3").PivotFields("a3").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:=Worksheets("sheet1").Range("D5")
    ActiveSheet.PivotTables("pv3").PivotFields("b").ClearAllFilters
    ActiveSheet.PivotTables("pv3").PivotFields("b").PivotFilters.Add Type:= _
        xlCaptionEquals, Value1:="1"

上記ではpv1とpv2のみですが、pv3,4,5,6も同じようにあります。

上記は、フィルタa1をしてbをしてのようにするため、
その都度で集計がかかっていそうですが、

a1とbのフィルタをして、実行。 みたいな感じにするようなコードはございませんでしょうか。

または何らか高速化する方法があるようでしたらご指導いただければ幸いです。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


まずは、
Application.ScreenUpdating = False
ではないでしょうか。

だめなら、ManualUpdateプロパティを試してみてください。
https://msdn.microsoft.com/ja-jp/library/office/ff823168.aspx
(マナ) 2016/07/26(火) 20:09


了解です。
(keeton) 2016/07/26(火) 22:35

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.