Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Excel VBAで画面更新を停止する−ScreenUpdatingプロパティ

Excel VBAで画面更新を停止する−ScreenUpdatingプロパティ

対象:Excel97, Excel2000, Excel2002, Excel2003

VBA(Visual Basic for Applications)を使って、マクロを組む場合によく必要とされる処理として確認メッセージの表示/非表示を切り替えがあります。この切り替えを行うためのDisplayAlertsプロパティについてご紹介しました。

同じくらい必要とされる処理として、画面更新の停止があります。

ExcelのVBAマクロでは、
 ワークシートの挿入/削除
 アクティブワークシートの切り替え
 データのコピー
といった処理がよく行われますが、画面更新を停止していな場合にはそれらの処理が行われる様子が、画面にすべて表示されます。

マクロ実行時の画面表示はかなりのスピードで行われるので、肉眼ですべてを確認するのは難しいかもしれませんが、処理が完了するまで画面がチラチラし続ける状態は見ることができるはずです。

[スポンサードリンク]

この様子は面白いと言えば面白いのですが、その理由を知らないマクロ利用者にとっては、不安や疑問を感じさせるものでもあります。

また何よりも、画面更新が行われると処理が完了するまでの時間が長くなります。

ですから、通常は何らかの処理を開始する前に画面更新が行われないような設定に変更し、処理が終了したら画面更新が行われる状態に戻すステートメントを記述します。

▼画面更新を停止するステートメント
Application.ScreenUpdating = False

逆に「Application.ScreenUpdating = True」とすれば、画面更新が行われるようになります。

一般的にはここでご紹介したように、画面更新を停止することを目的として利用されるScreenUpdatingプロパティですが、これを画面で変更が行われるごとに更新されるようにすることで、条件付き書式を使ってアクティブセルのある行列を目立たせることができることをご紹介しました。合わせてご参照ください。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Excel VBAで画面更新を停止する−ScreenUpdatingプロパティ

「Applicationオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.