本記事はプロモーションを含みます

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

問題が解決したら、お友達と共有しませんか?

この記事にいっぱいおごってみる?

KOBE WINGのAmazonほしい物リスト

オススメ記事

eyecatch_477

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

問題点 ExcelのVBAを処理しているとどうしても他のプロ…

eyecatch_471

Excel VBA 列幅 自動調整 一部の列幅、全ての列幅を設定する…

問題点 ExcelのVBAでワークシートの列幅を自動調整した…

eyecatch_771

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

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


VBAVBA,Excel

Posted by KobeWing