OfficeType

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