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を処理しているとどうしても他のプロ…
Excel VBA 特定のセルが見えるようにスクロールする方法…
問題点 ExcelのVBAでワークシートのセルに値を入力して…
ディスカッション
コメント一覧
まだ、コメントがありません