← コード一覧へ戻る
実務Excel・Windows連携

ステータスバーに進行状況を表示して元に戻す

StatusBarへ文字列を指定して表示し、処理終了時は実行前の表示内容と表示状態を復元します。

実行前に確認

  • StatusBarはExcel全体に影響します。強制停止すると後始末が実行されないため、通常の終了経路で戻してください。
  • 公開前にコードと公式仕様を照合していますが、Excel実機での動作は未確認です。コピーしたブックで試してください。

1サンプルコード

Option Explicit

Sub PracticeAdvanced8019()
    Dim oldStatus As Variant
    Dim oldVisible As Boolean
    oldStatus = Application.StatusBar
    oldVisible = Application.DisplayStatusBar
    On Error GoTo Failed
    Application.DisplayStatusBar = True
    Application.StatusBar = "確認処理を実行中です"
    MsgBox "画面下のステータスバーを確認してください"
CleanUp:
    Application.StatusBar = oldStatus
    Application.DisplayStatusBar = oldVisible
    Exit Sub
Failed:
    MsgBox Err.Description, vbExclamation
    Resume CleanUp
End Sub

図で見る操作の流れ

イメージ図

この例の準備と結果を示す模式図です。

  1. 準備

    練習用ブックの標準モジュールにコードを配置

  2. 操作

    StatusBarへ文字列を指定して表示し、処理終了時は実行前の表示内容と表示状態を復元します。

  3. 結果

    メッセージを閉じると元のステータスバーに戻ります。

StatusBarはExcel全体に影響します。強制停止すると後始末が実行されないため、通常の終了経路で戻してください。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用のマクロ有効ブックを開き、Alt+F11→[挿入]→[標準モジュール]へコードを貼り付けます。

  2. 2

    PracticeAdvanced8019を実行します。

  3. 3

    StatusBarへ文字列を指定して表示し、処理終了時は実行前の表示内容と表示状態を復元します。

  4. 4

    メッセージを閉じると元のステータスバーに戻ります。

使っている機能の公式ドキュメント(Microsoft Learn)