VBA|Application|Calculation|計算モード(自動/手動/半自動)を切り替える
■ 基本構文
Application.Calculation = 計算モード定数
・計算モード定数(XlCalculation)
○ xlCalculationAutomatic :自動計算
○ xlCalculationManual :手動計算
○ xlCalculationSemiautomatic:半自動計算(テーブル等一部は自動)
戻り値の型・性質
・XlCalculation(現在の計算モード)
■ サンプルコード
サンプル①:大量更新中だけ手動計算にして、最後に戻す
役割:処理中の再計算を止めて高速化し、最後に計算と設定復帰を行う
理由:セル更新が多いと再計算が繰り返されて遅くなるため
注意:Application単位の設定のため、必ず元に戻す(エラー時も復帰)
Sub Sample_Calculation_Toggle()
Dim oldCalc As XlCalculation
oldCalc = Application.Calculation
On Error GoTo CleanUp
Application.Calculation = xlCalculationManual
例:大量のセル更新(ダミー)
Range("A1:A10000").Value = "X"
必要に応じて明示的に計算
Application.Calculate
CleanUp:
設定を必ず復帰
Application.Calculation = oldCalc
End Sub
■ 備考
・Application.Calculation は「Excelインスタンス全体」に影響する
・手動計算中は、必要に応じて Application.Calculate / CalculateFull / CalculateFullRebuild を使い分ける
・エラー時に復帰漏れしないよう、復帰処理を必ず用意する
いいなと思ったら応援しよう!
技術メモや学習の整理として書いています。
もし内容が役に立ったり、続きを読みたいと思っていただけたら、
応援として受け取らせてもらえたら嬉しいです。