VBAでScreenUpdatingをFalseにすると処理が速い

ExcelのVBAの処理の高速化の一つにScreenUpdatingをFalseにする方法があります。
通常、いずれかのセルの値を変更するとそれを表示するために画面が更新されます。これに時間がかかります。「Application.ScreenUpdating = False」とすると画面が更新されなくなり、処理が速くなります。コードの最初でFalseにしておき、一連の処理が終わった最後にTrueにすれば画面が更新されます。

次のサンプルはA1セルに1から100000までを入力するものですが、ScreenUpdatingをFalseにするとTrueのときより約5倍速くなりました。

Sub test()
    Application.ScreenUpdating = False
    For i = 1 To 100000
        Cells(1, 1) = i
    Next i
    Application.ScreenUpdating = True
End Sub

コメント

タイトルとURLをコピーしました