EXCEL VBAの処理高速化

複数シートで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 の処理を高速化する

<個人的な感想>
大幅な高速化はできないが、体感的には早く感じた。
やはり画面の表示が頻繁に切り替わる場合と、そうでない場合は
後者のほうが落ち着くて見られるので、その影響もある。