VBA(Visual Basic for Applications)を使って、マクロを組む場合によく必要とされる処理として確認メッセージの表示/非表示を切り替えがあります。この切り替えを行うためのDisplayAlertsプロパティについてご紹介しました。
同じくらい必要とされる処理として、画面更新の停止があります。
ExcelのVBAマクロでは、
ワークシートの挿入/削除
アクティブワークシートの切り替え
データのコピー
といった処理がよく行われますが、画面更新を停止していな場合にはそれらの処理が行われる様子が、画面にすべて表示されます。
マクロ実行時の画面表示はかなりのスピードで行われるので、肉眼ですべてを確認するのは難しいかもしれませんが、処理が完了するまで画面がチラチラし続ける状態は見ることができるはずです。
この様子は面白いと言えば面白いのですが、その理由を知らないマクロ利用者にとっては、不安や疑問を感じさせるものでもあります。
また何よりも、画面更新が行われると処理が完了するまでの時間が長くなります。
ですから、通常は何らかの処理を開始する前に画面更新が行われないような設定に変更し、処理が終了したら画面更新が行われる状態に戻すステートメントを記述します。
Application.ScreenUpdating = False
逆に「Application.ScreenUpdating = True」とすれば、画面更新が行われるようになります。
一般的にはここでご紹介したように、画面更新を停止することを目的として利用されるScreenUpdatingプロパティですが、これを画面で変更が行われるごとに更新されるようにすることで、条件付き書式を使ってアクティブセルのある行列を目立たせることができることをご紹介しました。合わせてご参照ください。
- Newer:楽天でNo.1になれた幸せなお金の儲け方
- Older:グラフアニメーションを連続して実行
Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Excel VBAで画面更新を停止する−ScreenUpdatingプロパティ