Applicationオブジェクト Application.StatusBar

Application

Application.StatusBar は、VBA(Visual Basic for Applications)で Excel画面下部のステータスバーに任意のメッセージや進捗情報を表示するために使う Application オブジェクトのプロパティです。

通常、Excelのステータスバーには「準備完了」「入力モード」などが表示されますが、VBAを使うことで 一時的にユーザー定義のメッセージを表示できます。


🔷 基本構文

Application.StatusBar = "ここに表示したいメッセージ"

ステータスバーを元に戻す:

Application.StatusBar = False

🔷 主な用途

用途説明
ユーザーへの通知マクロ処理中に「読み込み中…」などを表示
進捗状況の表示ループ処理の途中で現在の件数などを表示
デバッグDebug.Print の代わりに画面上に一時的に出力

🔷 使用例①:処理中メッセージの表示

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

🔷 よくある活用パターン

パターン
起動中の表示“レポート作成中…”
件数カウント“現在 23 件目を処理中”
検索結果“対象データは見つかりませんでした”
処理終了通知“完了しました(処理時間:3秒)”

🔷 ステータスバー vs MsgBox vs Debug.Print

項目StatusBarMsgBoxDebug.Print
表示場所Excel画面下部ポップアップイミディエイトウィンドウ
ユーザー操作を妨げない❌(クリックが必要)
ログとして残る
動的表示(進捗など)

🔷 まとめ

項目内容
プロパティ名Application.StatusBar
種類読み書きプロパティ
主な用途ステータスバーへのメッセージ表示
戻す方法Application.StatusBar = False
注意点表示後に False を設定して必ず元に戻すこと
補足DoEvents を使うと表示が確実に更新される
タイトルとURLをコピーしました