【VBA】指定のシートを再計算する|Calculate
作成日:2022-11-29
更新日:2025-10-05

Calculate|強制的に再計算する
' Recalculate only the specified worksheet|指定シートだけ再計算
Public Sub RecalcSheet(ByVal ws As Worksheet)
ws.Calculate
End Sub
' Recalculate all open workbooks|開いている全ブックを再計算
Public Sub RecalcBook()
Application.Calculate
End Sub
Extended Option(発展版)
' Full recalculation|全セル強制再計算
Application.CalculateFull
' Full rebuild of dependencies|依存関係グラフを再構築
Application.CalculateFullRebuild
これらは通常、計算モード切替(自動↔手動)後や、名前定義の大規模変更時などに使用する。
再計算する目的

最初に計算を止めているので、途中で計算後の値を取りたいときは再計算をする
ws.Calculate
|シート単位再計算
Public Sub RecalcSheet(ByVal ws As Worksheet)
ws.Calculate
End Sub
- 対象範囲:渡された
Worksheet
オブジェクトのみ - 動作内容:そのシート内の全数式セルを再計算
- 用途例:
- あるシートだけをリフレッシュしたいとき
- 外部データリンクを持たない軽量再計算
高速で安全。シート単位での依存関係チェックが走るため、他シートは再計算されない。
Application.Calculate
|ブック全体再計算
Public Sub RecalcBook()
Application.Calculate
End Sub
- 対象範囲:すべての開かれているブック(全セル)
- 動作内容:全ての再計算が強制的に実行される
- 用途例:
- 複数ブック間リンクがある場合
- VBAによって値が大量変更された後の同期
大規模ブックでは計算コストが高い。必要に応じて .CalculateFull
(完全再計算)や .CalculateFullRebuild
(依存関係再構築)を使い分ける。
可能な限りシート単位で再計算し、ブック全体再計算は最後の手段にする。
Use sheet-level recalculation whenever possible;
full-book recalculation should be your last resort.
Referenced Insights & Citations
- Microsoft Docs. Worksheet.Calculate method (Excel)
https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.calculate - Microsoft Docs. Application.Calculate method (Excel)
https://learn.microsoft.com/en-us/office/vba/api/excel.application.calculate - Walkenbach, J. (2013). Excel Power Programming with VBA. Wiley.
| Recalculation|再計算 |
| Worksheet Object|ワークシートオブジェクト |
| Application Object|アプリケーションオブジェクト |
| Dependency Graph|依存関係グラフ |
| Performance Cost|処理コスト |
Control the calculation
—Excel won’t wait for you.
—Excel won’t wait for you.
2022-11-29
編集後記:
この記事の内容がベストではないかもしれません。