皆さんは、]VBAで処理を高速化する方法を知っていますか?VBAで処理が遅くなる原因として最も多いのが、「シート移動・並び替え・セル移動などの際に発生する画面更新」です。Application.ScreenUpdatingを使えば、簡単に画面更新を止めることができます。まとめ結論:画面更新を止めて高速化する方法とはVBAで画面の処理を止める場合は、Application.ScreenUpdatingを使ってつぎのように書きます。FalseFlaseで画面更新停止、Trueで画面更新再開することができます。次のように処理の冒頭で画面更新を止めて、最後に再開することで画面更新せずにメインの処理を実行することができます。Sub画面更新をとめると無駄な表示がなくなるので、その分処理が高速化するわけですね。処理を速くするだけであれば、この方法だけ覚えておけばOKです。処理が動いているのかわからないどれぐらい処理に時間がかかるのかわからないといった問題があり、初めて使う人は不安に思ってしまいます。そのため、処理の途中経過を表示する方法も覚えておくのがおすすめです!途中経過を表示するサンプルコードはコチラです。Sub実行結果:※この例ではG2セルの文字色を事前に赤にしていますCallで実行したStepの処理の冒頭で、進捗状況をG2セルに書き込む処理を書いています。自分で使うツールを作るだけの場合は不要ですが、自分以外の人が使うツールを作る場合は進捗状況がわかるように作っておくのがおすすめです!補足:合わせて覚えると便利な小技とはほとんどの場合画面更新を止めるだけで処理が速くなるのですが、稀に画面更新を止めても速くならないことがあります。画面更新を止めても処理が速くならない場合は、Excelの数式の自動計算が重たい可能性が高いです。画面更新と同様に自動計算も1行で止めることができるので、合わせて覚えておくのがおすすめです。Subただ、VBAの処理中に数式の入ったセルの値を使う場合は直前に再計算を入れる必要があるので、こちらも合わせて覚えておきましょう。Application.CalculateExcelの数式がありすぎて重たくなっている場合などに特におすすめなので、覚えておくと便利ですね。まとめ今回は、画面の更新を止めて処理を高速化する方法について解説しました。VBAは、処理を書いているうちに重たくなることがよくあります。コードの書き方を直せば少しずつ速くできるかもしれませんが、長いコードを書いた後に直すのは正直大変ですよね。今回紹介した方法は、手っ取り早く処理を速くすることができるので覚えておくと便利です。使ってみてくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。Wakizaka新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。インフラ、製造、テスト、運用保守など、様々な経験あり。侍ブログ編集部として、これまでに200記事以上の記事を執筆。現在はフリーランスエンジニア兼テックライターとして活動中。