VBScript でメッセージボックスを表示するには MsgBox 関数を使う。
スクリプトを WScript/CScript のどちらで実行してもメッセージボックスが表示される。
MsgBox 関数
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
引数
prompt には表示するメッセージを指定する。
メッセージは CR、LF、CR+LF のいずれかを使って改行できる。
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 | ヘブライ語とアラビア語のシステムでテキストが右から左に読む形式で表示されるように指定する。 |
title にはタイトルバーに表示する文字列を指定する。
helpfile にはヘルプファイルを識別する文字列を指定する。これを指定した場合、context も必ず指定する。
context にはヘルプコンテキスト番号を指定する。
VBScript では helpfile と context の設定は意味がなさそうである。
ヘルプボタンを押しても何も表示されなかった。
戻り値
押されたボタンを表す整数が返る。
| 定数 | 値 | 説明 |
|---|---|---|
| vbOK | 1 | OK |
| vbCancel | 2 | Cancel |
| vbAbort | 3 | 中止 |
| vbRetry | 4 | 再試行 |
| vbIgnore | 5 | 無視 |
| vbYes | 6 | はい |
| vbNo | 7 | いいえ |
例1: 「Hello World!」を表示する
MsgBox "Hello World!"

例2: 確認メッセージを表示する
「はい」と「いいえ」のボタンを持ち、「いいえ」を既定としたメッセージボックスを表示する。
Dim ret
ret = MsgBox("登録します。よろしいですか?", _
vbYesNo + vbQuestion + vbDefaultButton2, _
"確認")
If ret = vbYes Then
'TODO: はいクリック時の処理を書く
ElseIf ret = vbNo Then
'TODO: いいえクリック時の処理を書く
End If
例3: 0 除算エラーの内容を表示する
「OK」ボタンと「ヘルプ」ボタンを持つメッセージボックスに、実行時エラーの内容を表示する。
On Error Resume Next
Dim val
val = 100 / 0
MsgBox "Error # " & CStr(Err.Number) & " was generated by " & _
Err.Source & vbLf & vbLf & _
Err.Description, _
vbMsgBoxHelpButton, _
"Error!", _
Err.Helpfile, _
Err.HelpContext
ヘルプボタンを押したらスクリプトが異常終了した。原因は不明。
エラーレベル(ERRORLEVEL)は -1073741819 だった。









