「.Calculation」と「.EnableCalculation」のどちらが効果的か

Pocket

Excelのマクロの処理を高速化するために、マクロの実行中のワークシート上の計算を止めるという方法があります。
通常はセルの内容が変われば自動的に計算されます。これを一時的に停止しマクロの実行後に元に戻すという方法です。
二つ方法があります。

.Calculation

次のようにすると、自動的に計算されないようになります。マクロの先頭部分に書くと以降の処理の最中はワークシート上の計算が止まります。
Application.Calculation = xlCalculationManual

次のようにすると、自動的に計算されるようになります。マクロの末尾部分に書いて通常の状態に戻しておきます。
Application.Calculation = xlCalculationAutomatic

.EnableCalculation

次のようにすると、アクティブシートについて、自動的に計算されないようになります。
ActiveSheet.EnableCalculation = False

次のようにすると、自動的に計算されるようになります。
ActiveSheet.EnableCalculation = True

どちらが効果的か

「.EnableCalculation」は指定したシートの自動計算をコントロールします。もし別のシートで計算に時間のかかる関数などを使っていたりすると効果が減ります。
一方、「.Calculation」はExcel(アプリケーション)全体の自動計算をコントロールします。全てのシートの計算を止められますので、こちらの方が効果があります。意図的に特定のシートだけをコントロールする必要がある場合以外は「.Calculation」を使うのがよいと思います。

[ 2014年10月16日 | カテゴリー: Excel | タグ: , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報