Excel VBA 速度アップの方法 高速化

eyecatch_477

問題点

ExcelのVBAを処理しているとどうしても他のプログラムと比べて遅い、また普通に処理をさせているとバックグランドでは処理されないので、シートも使うような処理などでは目に見えて遅くなる。また、メモリーの消費量も多くなっていると感じる。

改善方法

計算の方法の変更とか、他のプログラムと共通するようなものは今回は記載しませんが、Excel VBA特有の書き方を記載します。

477-001
Sub test()
     Application.ScreenUpdating = False
     'プログラム文
     Application.ScreenUpdating = True
End Sub

これが処理アップの基本的な書き方となります。
プログラムのテストが終わったら、組み込むと便利です。

Application.ScreenUpdating = False

この宣言でバックグランドで処理になります。

Application.ScreenUpdating = True

この宣言でバックグランド処理から見える処理へと変わります。

注意しないといけないので、例えば「msgbox」など、表示させないといけないものがあるときは、必ず処理前に「Application.ScreenUpdating = True」を宣言するのを忘れないようにしないといけません。よくあるミスが、終了前に最後に「終了しました」みたいなメッセージを出してから終わる場合に、うっかり宣言忘れで表示されず終わったかわからないというミスがあります。

読者アンケート

このページの広告表示量について

表示されている広告の量を、どのように感じましたか?

今後の表示改善の参考にするため、近いものを1つ選んでください。

個人を特定する情報は保存しません。

Program 関連の相談先・運営者情報

Program 関連の記事を読んだ方向けに、運営者情報と相談先を整理しています。連絡は X を基本窓口とし、内容確認後に対応可否をご案内します。

Xでご依頼・ご相談 ホームを見る

Windowsの不具合対処や更新情報は、確認できた範囲で随時整理しています。内容により個別対応できない場合があります。