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」を宣言するのを忘れないようにしないといけません。よくあるミスが、終了前に最後に「終了しました」みたいなメッセージを出してから終わる場合に、うっかり宣言忘れで表示されず終わったかわからないというミスがあります。

オススメ記事

eyecatch_771

Excel VBA 特定のセルが見えるようにスクロールする方法…

問題点 ExcelのVBAでワークシートのセルに値を入力して…

eyecatch_465

EXCEL VBA 保存後にWindowsをシャットダウンする方法…

問題点 EXCEL VBAで、長時間動かすマクロだと、マクロ…

eyecatch_791

Excel VBA セルの色、文字の色 取得方法 条件式の方法…

プログラムの背景 Excel VBAでワークシートのセルの色…


VBAVBA,Excel

Posted by KobeWing