カテゴリ


商品検索


twitter


スポンサー


twitter


検索


スポンサー


【Excel VBA】Pivotテーブル高速化


今回は、すこ~し寄り道。

エクセル先生のピボットテーブルをVBAから扱う際の高速化技術についてです。

何をすれば早いのか


ただ単純に、ピボットさんの、
「ManualUpdate」をTrueに設定。
で、任意のタイミングで、ピボットさんの「Update」関数を呼ぶ。
それでリフレッシュがかかる。

ちなみに、Rawデータ自体を更新したい場合は、
キャッシュ自体を更新する必要あり。

あと、最終的には、「ManualUpdate」をFalseに戻しておいたほうが良いかも。

余談

ピボットさんの更新を手動化するだけでなく、VBA全般に関して、
処理の途中経過をユーザ様に見せる必要がなければ、以下を必ず入れておくことがおすすめ。

●処理始まりに・・・
・Application.ScreenUpdating = false
・Application.Calculation = xlCalculationManual

●処理の終わりに・・・
・Application.ScreenUpdating = true
・Application.Calculation = xlCalculationAutomatic

※ただし、「Application.Calculation」は、もともとそのエクセル自体が、自動計算がOFFになっている場合もあるので、
 あらかじめ「Application.Calculation」の値を見て、
 「Auto」だったら、「Manual」にして、元に戻すという考え方がよさそう。

とっても簡略化しましたが、
1分くらいかかっていた処理が、3秒になるということもあったので(と、このケースは、これ以外にも問題だらけでしたが)、
是々非々、取り込んでみてください。
 

免責事項


  • サイトを利用することでのトラブルや損失については責任を問わないものとします
  • サイト上の情報の正確性、合理性、有用性などは保証しかねます
  • サイト上の情報は予告なく変更、削除される場合があります