VBAで自動化 VBA一覧 マクロ実務処理 マクロ計算

【VBA】再計算制御:Calculateメソッドの効果的な活用法

Excel のパフォーマンスを最適化したい方、VBA スクリプトの実行速度を向上させたい方への記事です。Excel VBA での再計算プロセスを制御するメソッドの詳細と、その効果的な活用方法Calculateについて大量のデータ処理や複雑な関数を高速に処理する秘訣を学びましょう。

再計算モードについて

自動再計算:セルの内容が変わるたびにExcelは自動的に再計算します。

Application.Calculation = xlCalculationAutomatic

手動再計算:再計算を停止します。手動で再計算を行う必要があります。大量のデータ変更を行うVBAのマクロを実行する前にこのモードで実行すると、パフォーマンスが向上することがあります。

Application.Calculation = xlCalculationManual

再計算のトリガー

全てのシートを再計算:ワークブック全体の再計算を行います。

Application.Calculate

特定のシートのみを再計算:指定したワークシートのみを再計算します。

Worksheets("Sheet1").Calculate

特定の範囲を再計算: 指定した範囲のセルのみを再計算します。

Range("A1:D10").Calculate

再計算をいっせいにするコードの書き方

大量のデータをVBAで書き換えたりする場合にセルごとに入力されると毎回、再計算されることになります。データ量が多い場合には処理に時間がかかってしまいます。
セルの値を変更する前に自動計算の停止をさせます。すべてのセルの値を変更し終わった後に再計算の指示をだします。そうすることにより処理速度が早くなります。
今回の例では「Application.Calculation = xlCalculationAutomatic」を使用しましたが「再計算のトリガー」で紹介したシートのみの再計算や範囲指定の再計算などでも良いでしょう。

Application.Calculation = xlCalculationManual ’自動再計算を停止させます。
'~色々な処理コード~
Application.Calculation = xlCalculationAutomatic '自動計算を開始させます。ここで一気に計算処理をさせます。

-VBAで自動化, VBA一覧, マクロ実務処理, マクロ計算