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

5秒で閉じる通知を表示する

WScript.ShellのPopupで、OKを押さなくても一定時間で閉じる通知を表示します。

実行前に確認

  • 通常のMsgBoxに自動終了機能が付くわけではありません。タイムアウトを承認扱いにせず、重要な確認は通常のMsgBoxを使います。
  • 組織でWindows Script Hostが制限されている場合は利用できません。制限の解除は行いません。
  • 公式仕様とコードを照合した例です。Excel実機での実行は未検証です。業務ブックではなくコピーで試してください。

1サンプルコード

Option Explicit
Sub PracticeAdvanced8011()
    Dim sh As Object, answer As Long
    On Error GoTo Failed
    Set sh = CreateObject("WScript.Shell")
    answer = sh.Popup("練習用の通知です。約5秒で閉じます。", 5, "通知", vbOKOnly + vbInformation)
    Debug.Print "戻り値: "; answer
    Exit Sub
Failed:
    MsgBox "通知を表示できません: " & Err.Description
End Sub

図で見る操作の流れ

イメージ図

準備、実行する操作、確認する結果の順で示しています。

  1. 準備

    Windows版向けです。秒数5と通知文を確認します。Ctrl+Gでイミディエイトウィンドウを開いておきます。

  2. 操作

    WScript.ShellのPopupで、OKを押さなくても一定時間で閉じる通知を表示します。

  3. 結果

    約5秒で閉じると戻り値-1、[OK]で閉じると1がイミディエイトウィンドウに出ます。

通常のMsgBoxに自動終了機能が付くわけではありません。タイムアウトを承認扱いにせず、重要な確認は通常のMsgBoxを使います。

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

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

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。

  2. 2

    Windows版向けです。秒数5と通知文を確認します。Ctrl+Gでイミディエイトウィンドウを開いておきます。

  3. 3

    PracticeAdvanced8011を実行し、触らずに待つか[OK]を押します。

  4. 4

    約5秒で閉じると戻り値-1、[OK]で閉じると1がイミディエイトウィンドウに出ます。

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