
Excel VBA 数式が含まれるセルの値を最新状態に保つ「再計算」。 再計算を制御することで、処理速度を向上させたり、不要な再計算を抑えたりできます。 使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
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
・指定した範囲の数式のみを再計算できる。
・大量のデータを処理するときは、この方法が高速
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
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で自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。