メイン画像

VBScript - メッセージボックスを一定時間表示したあと自動で閉じる(Shell.Popup メソッド)

VBScript - メッセージボックスを一定時間表示したあと自動で閉じる(Shell.Popup メソッド)


メッセージボックスを一定時間表示したあと自動で閉じるには、Shell オブジェクトの Popup メソッドを使います。

スクリプトを WScript.exe/CScript.exe のどちらで実行してもメッセージボックスが表示されます。

使い方

ShellObject.Popup (prompt, [ time, ] [ title, ] [ buttons ])

引数

prompt
表示するメッセージ
メッセージはCR、LF、CR+LFのいずれかを使って改行できる。
time
メッセージボックスを表示する時間(秒)
ここで指定した時間が経過すると、メッセージボックスは自動で閉じられる。
指定しなかった場合は、自動で閉じられなくなる。
title
タイトルバーに表示する文字列
buttons
ボタンの種類、アイコンの種類、既定のボタン、メッセージボックスのモダリティの組み合わせを指定する。
ボタンの種類
定数 説明
vbOKOnly 0 [OK] ボタンのみを表示します。
vbOKCancel 1 [OK]、[キャンセル] ボタンを表示します。
vbAbortRetryIgnore 2 [中止]、[再試行]、[無視] の各ボタンを表示します。
vbYesNoCancel 3 [はい]、[いいえ]、[キャンセル] の各ボタンを表示します。
vbYesNo 4 [はい]、[いいえ] ボタンを表示します。
vbRetryCancel 5 [再試行]、[キャンセル] ボタンを表示します。
アイコンの種類
定数 説明
vbCritical 16 [重大なメッセージ] アイコンを表示します。
vbQuestion 32 [警告クエリ] アイコンを表示します。
vbExclamation 48 [警告メッセージ] アイコンを表示します。
vbInformation 64 [情報メッセージ] アイコンを表示します。
既定のボタン
定数 説明
vbDefaultButton1 0 1 番目のボタンを既定にします。
vbDefaultButton2 256 2 番目のボタンを既定にします。
vbDefaultButton3 512 3 番目のボタンを既定にします。
vbDefaultButton4 768 4 番目のボタンを既定にします。
メッセージボックスのモダリティ
定数 説明
vbApplicationModal 0 アプリケーション モーダル。現在のアプリケーションでの作業を続行するには、ユーザーはメッセージ ボックスに応答する必要があります。
vbSystemModal 4096 システム モーダル。ユーザーがメッセージ ボックスに応答するまで、すべてのアプリケーションが中断します。
vbMsgBoxHelpButton 16384 メッセージ ボックスに [ヘルプ] ボタンを追加します。
vbMsgBoxSetForeground 65536 [メッセージ ボックス] ウィンドウを前景ウィンドウとして指定します。
vbMsgBoxRight 524288 テキストを右揃えにします。
vbMsgBoxRtlReading 1048576 ヘブライ語とアラビア語のシステムでテキストが右から左に読む形式で表示されるように指定します。

*VBScriptではvbMsgBoxSetForegroundを指定しても、最前面に固定されませんでした。

戻り値

押されたボタンを表す整数が返ります。
何のボタンも押されず、メッセージボックスが閉じた場合は -1 が返ります。

押されたボタンを表す整数
定数 説明
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 中止
vbRetry 4 再試行
vbIgnore 5 無視
vbYes 6 はい
vbNo 7 いいえ

5秒経過したら自動で閉じる。

Dim shell
Set shell = CreateObject("WScript.Shell")

Dim ret
ret = shell.Popup("処理を続けてよろしいですか?", _
                  5, _
                  "継続確認", _
                  vbYesNo + vbQuestion)

If ret = vbYes Then
    WScript.Echo "はい"
ElseIf ret = vbNo Then
    WScript.Echo "いいえ"
ElseIf ret = -1 Then
    WScript.Echo "未選択"
End If

自動で閉じられないようにする。
(第2引数を空にするだけ)

Dim shell
Set shell = CreateObject("WScript.Shell")

Dim ret
ret = shell.Popup("処理を続けてよろしいですか?", _
                  , _
                  "継続確認", _
                  vbYesNo + vbQuestion)

If ret = vbYes Then
    WScript.Echo "はい"
ElseIf ret = vbNo Then
    WScript.Echo "いいえ"
End If

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事