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
に戻すことを忘れずにしてください。