【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 SubExtended 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
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

[VBA]Auto DiffHTML Output 【VBA】WinMergeでファイルを自動比較&HTMLレポート出力|AIより手軽 -

[VBA]buttonに何が登録されてるか 【VBA】ボタンに登録されているマクロ名を調べたい -

[VBA]Cutbefore after 【VBA】文字列から指定文字より前/後ろをカットする|InStrRev/Left$/Mid$ -

ユーザーフォームにドラッグ&ドロップ 【VBA】ドラッグアンドドロップできるユーザーフォーム|ListView -

[VBA]InStr文字列確認 【VBA】指定の文字列が含まれているか & 前後の文字列を返す|InStr/InStrRev -

Excel内でSQLを使いたい 【VBA】Excelシート内の表データをSQLで操作したい