ScreenUpdatingプロパティ解説(Excel VBA)

Excel VBAのScreenUpdatingプロパティについて

Excel VBAでマクロやプログラムを実行する際、処理の途中経過をユーザーに見せることなく、一連の処理を完了させたい場面がよくあります。そのような場合に活用されるのがScreenUpdatingプロパティです。

ScreenUpdatingプロパティの概要

ScreenUpdatingプロパティは、Excelの画面更新を制御するプロパティです。このプロパティをFalseに設定すると、処理が行われる間、Excelの画面更新が停止し、処理が完了するまでユーザーには何も表示されません。これにより、画面のちらつきを防ぎ、処理速度の向上が期待できます。

基本的な使用方法

マクロの実行時に画面更新を停止し、処理が終了したら再開する基本的な使用方法は以下のとおりです:


    Application.ScreenUpdating = False
    ' 何らかの処理
    Application.ScreenUpdating = True
    

ScreenUpdatingプロパティの活用サンプルコード

サンプルコード1: データの一括入力


    Sub BulkInputData()
        Application.ScreenUpdating = False
        For i = 1 To 1000
            Cells(i, 1).Value = i
        Next i
        Application.ScreenUpdating = True
        MsgBox "データの一括入力が完了しました。"
    End Sub
    

このサンプルコードは、A列に1から1000までの数字を連続して入力します。画面更新を停止しているため、高速に処理されます。

サンプルコード2: 複数のシート名変更


    Sub RenameSheets()
        Dim sheetNames() As Variant
        sheetNames = Array("販売データ", "顧客リスト", "分析結果")
        
        Application.ScreenUpdating = False
        For i = 1 To UBound(sheetNames)
            Sheets(i).Name = sheetNames(i - 1)
        Next i
        Application.ScreenUpdating = True
        MsgBox "シート名の変更が完了しました。"
    End Sub
    

このサンプルコードは、複数のシートの名前を一括で変更します。

ScreenUpdatingプロパティは、Excel VBAの処理速度向上やユーザーエクスペリエンスの向上に非常に役立ちます。ただし、必ず処理の最後にTrueに戻すことを忘れずにしてください。