VBAの実行速度高速化

 VBAの実行速度はあまり速くないので、色々なテクニックを使って実行速度を早くする事が必要です。普段よく使っている方法を以下に記載しますので、参考にしてください。

  1. 一番手っ取り早いのは、『Application.ScreenUpdating = False』でマクロ動作中の画面更新を省略する事。*1
  2. 次に早くするコツは、データを配列として取り込んで一気に読み込み、書き出しを行うというもの。rangeコマンドを使うのだが、これは参考サイトを見てもらった方が分かりやすいだろう。
  3. 最後のコツは、確認メッセージを省略するというもの。せっかくマクロを組んでいても、ワークシートを消す等の作業の際に一々『ワークシートを削除します(以下略)』というメッセージが出てきて作業が止まってしまうようでは、人がパソコンの前を離れる事が出来ないため何のためにマクロを組んだのか分からないという事になりかねない。確認メッセージの表示を省略するためには『Application.DisplayAlerts = False』という一文を記載する事でOK。


 自分自身では当たり前に使っていた事だが、このブログに記事が無かったので改めて記載しました。VBAの速度が遅くて困っている方はぜひ試してみて下さい。(ちなみに、※※=Falseという文を追加した場合は、マクロ終了前に※※=Trueという文を入れておいた方が無難です。)

*1:※マクロの最初にこの書式を書くと画面更新が省略されます。動作速度が速くなる代わりに画面上でマクロが動いている様子が見えないので、作業時間の長いマクロの場合は別途ステータスバーを表示させる等の工夫が必要です。