Sub ステータスバー表示() Application.StatusBar = "データ処理中...お待ちください"
' 擬似処理 Application.Wait Now + TimeValue("00:00:03")
Application.StatusBar = False ' 元に戻す End Sub
🔷 使用例②:ループの進捗状況表示
Sub 進捗表示() Dim i As Long For i = 1 To 100 Application.StatusBar = "処理中:" & i & " / 100" DoEvents ' ステータスバー更新を有効にする Application.Wait Now + TimeValue("00:00:01") Next i
Application.StatusBar = False ' リセット End Sub
🔷 ステータスバーに表示できる型
String 型(メッセージ文字列)
False:ステータスバーをExcelの通常表示に戻す
その他の型(数値、日付など)も文字列に変換されて表示されます。
🔷 注意点・制約
項目
内容
StatusBar に設定した内容は自動では消えない
必ず False を代入して元に戻す必要があります
長い文字列は途中で切れる
ステータスバーの幅に制限あり(約80〜100文字程度)
DoEvents を使わないと反映されない場合がある
処理が速すぎると表示が更新されないことがある
エラー時にステータスバーがそのまま残る
エラー処理(On Error)で False に戻すのが推奨
🔷 エラー対応を含めた実用テンプレート
Sub 安全なステータスバー処理() On Error GoTo エラー処理
Application.StatusBar = "処理開始..."
' --- 処理内容 --- Dim i As Long For i = 1 To 10 Application.StatusBar = "進捗: " & i & " / 10" DoEvents Application.Wait Now + TimeValue("00:00:01") Next i
終了処理: Application.StatusBar = False Exit Sub
エラー処理: MsgBox "エラーが発生しました: " & Err.Description Resume 終了処理 End Sub