システムトレード用の開発ツールです。エクセルの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 = xlCalculationManualcall 本文
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にする設定

投稿者 システムトレーダー壱式 : 2008年05月05日 21:44
このエントリーのトラックバックURL:
http://systemtrader.info/cgi/mt/mt-tb.cgi/27