'Excelを手動計算にする Application.Calculation = xlCalculationManual
'Excelを自動計算にする Application.Calculation = xlCalculationAutomatic
Excelの再計算の動作設定の変更には「Application.Calculation」プロパティを使用します
このプロパティの設定値を以下に設定すると動作が切り替わります
自動計算 = xlCalculationAutomatic(-4105)
通常の初期設定、セル値が更新されたりすると自動的に再計算する
手動計算 = xlCalculationManual(-4135)
自動的に再計算されることがなく、ユーザーの再計算実行により実行される
VBAでは「Calculate」メソッドを実行した時
再計算の切り替え
再計算の切り替えは、Excelのオプション設定からも行えますので、たまに手動に設定されているブックがあります
これは再計算に時間がかかり、セルの更新毎に再計算をさせる事による待ち時間の解消の為に使用しています
なので、VBAでも全く同じ扱いで構いません
処理中に再計算すること自体は問題ありませんので、とりあえず処理中は手動に切り替えるようなことはしなくていいです
処理中に、セルの更新等が多数あり、そのたびに数秒の待ち時間が発生し最終的に数分もかかってしまうような場合には、このプロパティを「xlCalculationManual」に設定してから処理を実行し、最後に「xlCalculationAutomatic」に戻すことで、その待機時間を無くすことができ、大幅な処理速度向上につながります
なお、自動に設定した時点で再計算が実行されるので再計算を実行するコードを実行する必要はありません
関連の記事