Excel VBA 速度アップの方法 高速化
問題点
ExcelのVBAを処理しているとどうしても他のプログラムと比べて遅い、また普通に処理をさせているとバックグランドでは処理されないので、シートも使うような処理などでは目に見えて遅くなる。また、メモリーの消費量も多くなっていると感じる。
改善方法
計算の方法の変更とか、他のプログラムと共通するようなものは今回は記載しませんが、Excel VBA特有の書き方を記載します。
Sub test()
Application.ScreenUpdating = False
'プログラム文
Application.ScreenUpdating = True
End Sub
これが処理アップの基本的な書き方となります。
プログラムのテストが終わったら、組み込むと便利です。
Application.ScreenUpdating = False
この宣言でバックグランドで処理になります。
Application.ScreenUpdating = True
この宣言でバックグランド処理から見える処理へと変わります。
注意しないといけないので、例えば「msgbox」など、表示させないといけないものがあるときは、必ず処理前に「Application.ScreenUpdating = True」を宣言するのを忘れないようにしないといけません。よくあるミスが、終了前に最後に「終了しました」みたいなメッセージを出してから終わる場合に、うっかり宣言忘れで表示されず終わったかわからないというミスがあります。
オススメ記事
Excel VBA 特定のセルが見えるようにスクロールする方法…
問題点 ExcelのVBAでワークシートのセルに値を入力して…
EXCEL VBA 保存後にWindowsをシャットダウンする方法…
問題点 EXCEL VBAで、長時間動かすマクロだと、マクロ…
問題点 ExcelのVBAを処理しているとどうしても他のプロ…
ディスカッション
コメント一覧
まだ、コメントがありません