数式の入った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ライフを送る役に立てればと思います。