EXCEL VBA の高速化 第3弾・・・非表示

EXCEL VBA の高速化裏技は、これが究極かもしれません。
非表示です。

http://shinshu.fm/MHz/88.44/archives/0000085938.html

以下のコードを処理前に一行
Application.Visible = False
以下のコードを処理後に一行追加します。
Application.Visible = True

ただ、実行すると画面から一切消えてしまいます。
最小アイコンも表示されません。
処理終了後、突然現れるって感じです。
途中、ファイル読み込み処理などあったら、その読込み画面が時々現れます。
これは、EXCEL 2003では、数秒しか縮まりませんでしたが、
EXCEL 2007では、数十秒レベルで縮まりました。

結果的に、以下の自動計算の一時停止が一番有効だったようです。
http://yorozuya.miraiserver.com/wp/?p=5594

合わせ技で、私は以下のようなコードに変更しました。

以下のコードを処理前に3行挿入

Application.Calculation = xlManual
Application.ScreenUpdating = Flase
Application.Visible = False

以下のコードを処理後に3行挿入します。

Application.Visible = True
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

現実的には、何も表示されなくなるので、以下のコードを処理前に2行挿入

Application.Calculation = xlManual
Application.ScreenUpdating = Flase

以下のコードを処理後に2行挿入し、

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

処理の途中に、以下のようなコードを記述し、

Application.StatusBar = “しばらくお待ちください….” & カウンター変数

実行すると、EXCELの画面はほとんど動きが無いまま実行されますが、

下部のステータスバーに、以下のように表示され、実行状態が表示されるので安心かもしれません。

excelstatusbar



コメントを残す