VBA~マクロ実行中の画面更新を無効にしよう~Excel
VBAで画面の更新を無効にしたい場合はApplication.ScreenUpdatingプロパティをFalseに設定します。有効にしたい場合ははTrueを設定します。
画面更新無効の場合
下のコードは1秒おきにA1,A2,A3,A4,A5に1を入力するコードですが、Application.ScreenUpdating = Falseで画面更新を無効にしてから処理を実行し、最後にApplication.ScreenUpdating = Trueで画面更新を有効にしているので処理が終わってからセルA1,A2,A3,A4,A5に1が表示されます。
Sub test1() Dim i As Long Application.ScreenUpdating = False For i = 1 To 5 Cells(i, 1) = 1 Application.Wait Now + TimeValue("00:00:01") Next Application.ScreenUpdating = True End Sub
画面更新有効の場合
下のコードをはApplication.ScreenUpdatingプロパティを設定していない以外は上のコードと同じです。実行すると1秒おきにA1,A2,A3,A4,A5に1が表示されていきます。
Sub test2() Dim i As Long For i = 1 To 5 Cells(i, 1) = 1 Application.Wait Now + TimeValue("00:00:01") Next End Sub