エクセルで繰り返し作業を効率よくするためにVBAを活用している時に、コマンドボタンを押したら画面が一瞬スクロールしたりシートが切り替わったりして目障りに思ったことありませんか?
そこでチラつきを解消する「ScreenUpdatingプロパティ」をご紹介しますので、たった1行付け加えれば書き込んだVBAの手順に従ってセルやシートが移動する時に起きるチラつきを防止してくれますよ。
ScreenUpdatingプロパティ
Excel-VBAの画面の操作系のプログラムとして分類されて、VBAに記載した処理手順に合わせてセルやシートが移動するので、画面表示も同じように更新されるので画面がチラついて見え、さらに処理も遅くなります。
この画面更新処理を停止させたり、稼働させたりすることができるのが「ScreenUpdatingプロパティ」です。
ScreenUpdatingプロパティの使い方
使い方は簡単で、既存のVBAコード「Sub()の直後と~End Sub直前に「ScreenUpdatingプロパティ」を使ってあげるだけなので、それぞれ1行ずつ記入するだけなのでとても簡単です。
例えば、シート1を表示していてシート2のセルAA1~AZ1000に「1」を入力したら、シート1のセルA1に移動するというコードだけを書くと、下記のようになります。
Sub 画面更新停止()
Sheets(“sheet2”).Select
Range(“AA1:AZ1000”).Value = “1”
Sheets(“sheet1”).Select
Range(“A1”).Select
End Sub
実際にこのようなVBAコードは使いませんが、一瞬画面がちらつきますので、ScreenUpdatingプロパティを使うとちらつきが防止できます。
Sub 画面更新停止()
Application.ScreenUpdating = False
Sheets(“sheet2”).Select
Range(“AA1:AZ1000”).Value = “1”
Sheets(“sheet1”).Select
Range(“A1”).Select
Application.ScreenUpdating = True
End Sub
このようにSub()の直後にApplication.ScreenUpdating = Falseと付け足すと、画面更新処理を停止してから記述したVBAコードに従ってプログラムが作動して、全てのプログラムの作業が終わったらEnd Subの直前にApplication.ScreenUpdating = Trueと付け足して、停止させた画面更新処理を再開(元に戻す)します。

Falseが停止、Trueが再開です。
ScreenUpdatingを使うことにより、ちらつき防止のついでに無駄な更新もなくなるので、VBAコードの処理も早くなるのでセルやシートの移動を伴うVBAコードを記述する時は必ず「ScreenUpdatingプロパティ」を使うほど使用頻度が高いVBAコードです。
ネット情報ではTrueを省略可(マクロ実行終了で自動的に戻る)となっている情報もあり、使い始めた当初は省略していましたが時々フリーズすることがあったので、今は省略せずに必ず記載するようにしてからはフリーズしていません。


よく見られているページ
-
エクセルの計算式の値を数字として読み取るVALUE関数
-
VBAの画面のちらつきがたった1行で解決して処理高速化する方法
-
COUNT関数を使って参加人数を自動的に数えるエクセル関数使用法
-
エクセルの時刻表示を0:00ではなく24:00にする方法
-
チェックボックスでチェック有と無しそれぞれの処理を変える方法
-
1クリックで上書き保存してエクセルファイルを閉じる方法
-
エクセル計算式が#VALUE!エラーになったセルを空欄にする方法
-
条件に一致したセルを繰り返し探してVBAで文字色を変える方法
-
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
-
エクセルシートの保護したらマクロエラーになった時のVBA対処法


新着ページ