[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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 >
だめなら、ManualUpdateプロパティを試してみてください。
https://msdn.microsoft.com/ja-jp/library/office/ff823168.aspx
(マナ) 2016/07/26(火) 20:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.