YiaoWang
{@last-update}

Excel VBA:高速化 >全般:画面の再描画/数式の再計算を止める

概要

対応方法

サンプル

Public Sub Main() On Error GoTo EXCEPTION ' 画面の再描画を停止する Application.ScreenUpdating = False ' 数式の自動計算を停止する Application.Calculation = xlCalculationManual ' メイン処理を行う GoTo FINALLY EXCEPTION: FINALLY: ' 数式の自動計算を自動にする Application.Calculation = xlCalculationAutomatic ' 画面の再描画を再開する Application.ScreenUpdating = False End Sub

説明

高速化の基本中の基本なので詳細は省略。注意点のみ列挙します。

  • Application.ScreenUpdating は、例外が起きようとも必ず True に戻す。
  • Application.Calculation は、xlCalculationAutomatic に変更したタイミングでブック内全ての再計算が実行される。
  • セル内の数式の値使用する場合は再計算を忘れずに行うこと。
    • 全シートの再計算:Application.Calculate
    • 現シートの再計算:ActiveSheet.Calculate
    • 特定セルの再計算も可能だが、シート単位で再計算した方が無難。
  • EnableCalculation でも数式の自動計算を停止することは可能だが、False 中は、Calculate で再計算できなくなるので禁止。

参考ページ

inserted by FC2 system