処理の高速化
「Excel」では、VBAを使ってセルの値を変更したり、何か操作をすると手作業と同じように画面の表示が更新されます。繰り返し処理等の画面の更新を伴う処理の場合、画面更新を一時停止することにより、画面更新を行わなくて済む分、処理が高速になります。また、「Excel」は印刷機能が弱く、設定に時間がかかります。印刷設定時にプリンターとの通信を一時的に遮断すると印刷設定が高速に実行されます。以上の2つの高速化について説明します。
処理を高速化するApplicationオブジェクトのプロパティ一覧
プロパティ | 内容 |
---|---|
ScreenUpdating 【スクリーンアップデーティング】 | 画面更新を停止します。 |
PrintCommunication 【プリントコミュニケーション】 | Excelとプリンターとの通信を遮断します。 |
ScreenUpdating【スクリーンアップデーティング】プロパティ
画面更新の停止と再開を設定するには、Application【アプリケーション】オブジェクトのScreenUpdating【スクリーンアップデーティング】プロパティを使用します。
ScreenUpdating【スクリーンアップデーティング】プロパティの書式と設定値の説明
オブジェクト.ScreenUpdating = 設定値
- オブジェクト(必須)
Application【アプリケーション】オブジェクトを指定します。 - 設定値(必須)
画面更新の停止と再開をブール型の値で指定します。設定値 内容 False 画面更新を停止します。 True 画面更新を再開します。
画面更新を停止するコード
Application.ScreenUpdating = False
画面更新を再開するコード
Application.ScreenUpdating = True
繰り返し処理や複数のブックを開いて処理をするような画面に更新が頻繁に行われる処理には必須です。画面の更新が伴う処理の前に「画面更新を止めるコード」を記述し、その処理が終わったら「画面更新を再開するコード」を記述します。プロシージャーの実行が終了すると自動的にScreenUpdating【スクリーンアップデーティング】の値はTrueになりますが、不意なトラブルを防ぐためにTrueに設定するステートメントを明示的に記述します。
PrintCommunication【プリントコミュニケーション】プロパティ
Excelとプリンターとの通信を一時的に遮断するには、Application【アプリケーション】オブジェクトのPrintCommunication【プリントコミュニケーション】プロパティを使用します。印刷設定を表すPageSetup【ページセットアップ】オブジェクトの処理は時間がかかります。プリンターとの通信を遮断した状態では、印刷設定が高速で行われるので、印刷設定を終えてから通信を再開し、キャッシュされた設定をプリンターに送信します。
※このプロパティはExcel2010で追加されたプロパティです。
PrintCommunication【プリントコミュニケーション】プロパティの書式と設定値の説明
オブジェクト.PrintCommunication = 設定値
- オブジェクト(必須)
Application【アプリケーション】オブジェクトを指定します。 - 設定値(必須)
プリンターとの通信の遮断と再開をブール型の値で指定します。設定値 内容 False 通信を遮断します。 True 通信を再開します。
プリンターとの通信を遮断するコード
Application.PrintCommunication = False
プリンターとの通信を再開するコード
Application.PrintCommunication = True
印刷設定を表すPageSetup【ページセットアップ】オブジェクトを設定する前に通信を遮断して、設定が終わったら再開します。
以上で VBA処理の高速化についての解説を終了します。
ありがとうございました。