VBAの処理速度を速める::システムトレード完全攻略(エクセル活用術)

VBAの処理速度を速める

※今回は主に「Application.ScreenUpdating = False」と「Application.Calculation = xlCalculationManual」を使います。
処理速度を劇的に早める特効薬みたいな、スクリプト文です。1文をプロシージャーに追加するだけ。



以下の処理はすべて、エクセルのメニューのツール→オプションのなかのダイアログボックスの項目をマクロでOFFにすることで、処理速度を速める手法です。ですのでマクロ終了後に影響が及ばないように、ON設定に戻す処理を必ず、文末に付け加えます。






Application.ScreenUpdating = False 

これは関数が更新された時などに画面の更新をOFFにする文。
エクセルマクロをバックグラウンドで実行するためのものです。シートやブックを複数使い、コピペを繰り返したりした時に画面のチラツキがなくなります。

Application.ScreenUpdating = True 

ON設定に戻す一文(別に記入しなくても戻る)






Application.Calculation = xlCalculationManual

これは関数の自動更新機能をOFFにする文。オプションの計算方法の手動にチェックに相当する。ただし、このままだと永久に自動計算OFFの状態なので、特にこの文は最後の方に自動更新をONの状態に戻す一文を忘れずに。

Application.Calculation = xlCalculationAutomatic

この「自動計算をOFFにする」は劇的に処理速度が向上します。しかし、エクセルシートの中に計算式がある場合、正しい計算結果が得られなくなる可能性があります。

例1)


sub 処理速度が速くなる()
Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual

call 本文

Application.Calculation = xlCalculationAutomatic
End Sub


とりあえず、どちらのスクリプトも本文に2、3文をつけ加えるだけなので、試してください。


さらに上の2つほどではありませんが、下の5つも処理速度は多少は速くなります。


ActiveWindow.DisplayGridlines = False

セルの枠線を非表示にする設定




Application.DisplayPasteOptions = False

「貼り付けオプション」ボタンを非表示にする設定




Application.DisplayInsertOptions = False

「挿入オプション」ボタンを非表示にする設定




Application.AutoRecover.Enabled = False

自動保存を行わない設定




Application.ErrorCheckingOptions.BackgroundChecking = False

エラーチェック設定の「バックグランドでエラーチェックを行う」をOFFにする設定


セルレーダー最新版ダウンロードした(^▽^)?

人気ブログランキングへ





1位取れたら未公開プログラム沢山吐き出すので応援のポチ2つしてね(≧ω≦)

投稿者 システムトレーダー壱式 : 2008年05月05日 21:44



トラックバック

このエントリーのトラックバックURL:
http://systemtrader.info/cgi/mt/mt-tb.cgi/27

コメント

コメントしてください




保存しますか?


//-->