
Excel VBA 数式が含まれるセルの値を最新状態に保つ「再計算」。 再計算を制御することで、処理速度を向上させたり、不要な再計算を抑えたりできます。 使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
Excel VBA 再計算|シーン
以下のシーンで利用します。
1.データを一括更新した後に手動で計算を実行
2.複雑な数式が多いシートで、処理速度を向上させる。
3.特定のタイミングでのみ計算を実行し、動作を最適化
Excel VBA 再計算|サンプルコード
シート内のすべての数式を手動で再計算
Option Explicit
Sub RecalculateSheet()
ActiveSheet.Calculate
End Sub
ActiveSheet.Calculate は アクティブなシートのみ 再計算します。他のシートの数式は再計算されないので注意
特定のセルの数式を更新したい
Option Explicit
Sub RecalculateRange()
Range("A1:C10").Calculate
End Sub
・指定した範囲の数式のみを再計算できる。
・大量のデータを処理するときは、この方法が高速
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
VBA処理中は自動再計算を無効にし、処理後に手動で再計算
Option Explicit
Sub DisableAutoCalculation()
' 自動計算を手動に変更
Application.Calculation = xlCalculationManual
End Sub
Sub EnableAutoCalculation()
' 自動計算を元に戻す
Application.Calculation = xlCalculationAutomatic
End Sub
・xlCalculationManual にすると すべての計算が手動になる。
・xlCalculationAutomatic に戻さないと、以降も手動のままになる。
・設定を変更したら忘れずに元に戻す処理を入れる。
ブック全体の数式を手動で最新にする
Option Explicit
Sub ForceRecalculate()
Application.CalculateFull
End Sub
・ブック内のすべての数式を強制再計算
・大量のデータがあると時間がかかるので注意
Excel VBA 再計算|まとめ
方法 | 利用シーン | 注意点 |
シート全体を再計算 | アクティブシートのみ再計算 | 他のシートは影響なし |
特定のセルを再計算 | 範囲を限定して高速処理 | 小範囲なら効率的 |
再計算を手動にする | VBAの処理を高速化 | 設定変更後は必ず戻す |
全体を強制再計算 | すべての数式をリフレッシュ | 大規模データでは遅い |
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!