Excel高速化のポイントとは?

数式の入ったExcelファイルやマクロを作成していると、パフォーマンスが気になりますよね。

今日はそんな方のために、Excelファイル作成時に役立つ高速化のポイントをまとめます。

方法1 -画面描画を止める

画面の描画には時間がかかります。
セルに直接値を代入するだけなら、それはメモリ内のみの処理です。

ですが、代入した結果を表示するには、画面の描画が必要です。

ApplicationオブジェクトのScreenUpdatingプロパティにFalseを設定すると、それ以降の画面描画をしないようにできます。

書き方

  • Application.ScreenUpdating = False

これを処理の最初に入れてください。

処理の終には、Trueにするのを忘れずに!

方法2 -揮発関数を使わない

一般の関数は、参照元セルが変更された場合にのみ再計算されますが、揮発性関数は、ワークシートが再計算されるたびに必ず計算が実行される関数のことを指します。

NOW 関数

INDEX 関数

AREAS 関数

CELL 関数

COLUMNS 関数

INDIRECT 関数

OFFSET 関数

ROWS 関数

RAND 関数

TODAY 関数

どれも便利な関数ですが、大量にこれらの関数を使用したファイルを作ってしまうと、ファイルを開く速度、シートを表示する速度が著しく下がります。

なるべく使用数を減らすようにしましょう。

方法3 -自動計算を止める

EXCELは、セルの値が変更になったとき、セルの数式が変更になったときに自動計算をします。
この自動計算はマクロ実行中でも行われますので、数式が多いファイルを処理するととてもスピードが遅くなります。
こういう場合は、自動計算を止め、プログラム終了直前に計算させることでスピードの向上をはかることができます。

書き方

  • Application.Calculation = xlCalculationManual
    終了時に自動再計算に戻す必要があります。
    戻す場合はコチラ
    Application.Calculation = xlCalculationAutomatic

また、シート毎に自動計算を止めることもできます。

書き方 -アクティブなシートだけ計算

  • Activesheet.Calculate

おわりに

いかがでしたでしょうか。

快適なExcelライフを送る役に立てればと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする