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図で見る操作の流れ
イメージ図準備、実行する操作、確認する結果の順で示しています。
準備
Windows版向けです。秒数5と通知文を確認します。Ctrl+Gでイミディエイトウィンドウを開いておきます。
操作
WScript.ShellのPopupで、OKを押さなくても一定時間で閉じる通知を表示します。
結果
約5秒で閉じると戻り値-1、[OK]で閉じると1がイミディエイトウィンドウに出ます。
通常のMsgBoxに自動終了機能が付くわけではありません。タイムアウトを承認扱いにせず、重要な確認は通常のMsgBoxを使います。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。
- 2
Windows版向けです。秒数5と通知文を確認します。Ctrl+Gでイミディエイトウィンドウを開いておきます。
- 3
PracticeAdvanced8011を実行し、触らずに待つか[OK]を押します。
- 4
約5秒で閉じると戻り値-1、[OK]で閉じると1がイミディエイトウィンドウに出ます。