Excelでは、ワークシートをいつ再計算するかを制御できます。通常、Excelは、セル内の何かを変更するたびに再計算します。数式がたくさん含まれている非常に大きなワークシートで作業している場合は、自動再計算機能をオフにすることをお勧めします。リボンの[数式]タブにある[計算]グループのツールを使用して、自動再計算をオフにできます。

マクロによって、Excelにワークシートの再計算を強制することもできます。自動再計算がオンになっている場合、マクロがワークシートに変更を加えると、Excelに再計算が強制されます。自動再計算をオフにしている場合は、Calculateメソッドを使用してワークシートを再計算できます。

ActiveSheet.Calculate

もちろん、再計算の実行にかなりの時間がかかる場合は、実際に再計算を強制する前に、再計算が必要かどうかを確認することをお勧めします。再計算が必要かどうかを直接確認できるフラグがないようです。最も近いのは、WorkbookオブジェクトのSavedプロパティを確認することです。このプロパティは、基本的に、ブック全体の「ダーティフラグ」として機能します。ブックに未保存の変更がある場合、SavedプロパティはFalseです。すべてが保存されている場合、それはTrueです。

これは、再計算が必要かどうかを判断するのにどのように役立ちますか?

計算は、ワークシートに変更がある場合にのみ必要であることに注意してください。ワークシートの内容を変更すると、ブックのSavedプロパティもFalseに設定されます。したがって、次に示すように、再計算を行う前にSavedプロパティを確認できます。

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate End If

もちろん、このアプローチには1つだけ問題があります。つまり、ブックが実際に保存されている場合にのみ、SavedプロパティがTrueに設定されます。これは、次に示すように、保存と再計算を結び付けない限り、実際に再計算する必要なしに複数回再計算できることを意味します。

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate     ActiveWorkbook.Save End If

この方法でこの問題に取り組む知恵は、あなたの特定の状況の性質に依存します。単に再計算するよりもブックの保存に時間がかかる場合、このアプローチは機能しません。ただし、再計算に時間がかかる場合(一部の種類の操作では非常に可能です)、このアプローチが適切に機能する可能性があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(5685)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Determining_if_Calculation_is_Necessary [計算が必要かどうかの判断]