複数シートでEXCEL VBAを何回も動作させる場合に処理時間が長くなる。
そこで、高速化を行うことにした。
1.考え方
(1)処理の初めに不要な表示などを停止する。
(2)処理が終了したら、停止した機能を再開する。
(3)処理の制御はpythonプログラムで行い、
停止・再開の命令はVBAマクロに纏める。
2.効果
バタイユゲーム支援ツールの強化(2)のpythonプログラムとEXCELを使用して測定した。
(1)対策前は3.1秒
(2)対策後は2.3秒で0.8秒早くなる。
なお、EXCELの画面切替がなくなるので見やすくなる。
3.対策内容
(1)VBAマクロ
なお、支援ツール内でEXCELの自動計算をしているので、この機能は停止させない。
(2)pythonプログラム
処理の最初
処理の最後
4.参考資料
下記のWEBページにお世話になりました。ありがとうございます。
・ExcelVBAを高速化する方法
・VBA の処理を高速化する
<個人的な感想>
大幅な高速化はできないが、体感的には早く感じた。
やはり画面の表示が頻繁に切り替わる場合と、そうでない場合は
後者のほうが落ち着くて見られるので、その影響もある。