メッセージボックスを表示します。第一引数に表示するメッセージ、第二引数に表示するボタンの種類を指定します。ボタンが押されるまで処理はストップします。処理を止めずメッセージを表示するだけの場合、FUKIDASI関数を使用します。メッセージボックスの表示に制限時間を設定するにはWshShell.Popup メソッドを使います。
右上のバツをクリックした場合、BTN_CANCEL(2)が返ります。
- 構文
- Integer = MSGBOX( メッセージ, 表示ボタン, X, Y, フォーカスボタン, リンクフラグ )
- 引数
- メッセージ (String)必須
- 表示メッセージ
- 表示ボタン (#msgbox = BTN_OK)省略可
- ボタン種別(複数指定可、デフォルトはBTN_OK)
BTN_YES(4)、BTN_NO(8)、BTN_OK(1)、BTN_CANCEL(2)、BTN_ABORT(中止)(16)、BTN_RETRY(再試行)(32)、BTN_IGNORE(無視)(64) - X、Y (Integer = 中央)省略可
- 表示位置 X、Y (デフォルトは中央、 -1,-1にて前回位置)
- フォーカスボタン (#msgbox = BTN_OK)省略可
- デフォルトとしてフォーカスを与えるボタン種別
- リンクフラグ (Boolean = False)省略可
- TRUEにするとhttp://, mailto:表記のある部分はリンク形式にする (デフォルト FALSE)
- 戻り値
- 押されたボタン種別
ボタンの種類
MSGBOX関数 (スクリプト関数)の第二引数にはボタンの種類を指定することができます。この引数を省略した場合は[OK]ボタンのみが表示されます。
| 定数名 | 値 | 説明 |
|---|---|---|
| BTN_OK | 1 | [OK]ボタンを表示します。 |
| BTN_CANCEL | 2 | [Cancel]ボタンを表示します。 |
| BTN_YES | 4 | [はい(Y)]ボタンを表示します。 |
| BTN_NO | 8 | [いいえ(N)]ボタンを表示します。 |
| BTN_ABORT | 16 | [中止(A)]ボタンを表示します。 |
| BTN_RETRY | 32 | [再試行(R)]ボタンを表示します。 |
| BTN_IGNORE | 64 | [無視(I)]ボタンを表示します。 |
以下がそれぞれ表示されるボタンです。( )内のアルファベットのキーを押すことで選択することもできます。
.png"] .png"] .png"] .png"] .png"] .png"] .png"]
複数ボタンの指定
複数のボタンを指定する場合は定数名を論理和(OR)で繋げます。
複数のボタンを指定した場合、メッセージボックスには定数の順番に関係なく左からはい、いいえ、OK、Cancel、中止、再試行、無視の順にボタンが表示されます。
よく使う組み合わせを定数として定義しておくと引数を簡潔に書けます。使いたいボタンの定数を論理和(OR)で繋げて書きます。頻繁に使う場合は以下の定数を定義しておくと良いです。
以下は数値を直接指定したものです。
以下のボタンの組み合わせはExcel VBAを参考にしています。
| 定数名 | 値 | 説明 |
|---|---|---|
| OKOnly | 1 | [OK]ボタンのみを表示します。 |
| OKCancel | 3 | [OK]ボタンと[Cancel]ボタンを表示します。 |
| AbortRetryIgnore | 112 | [中止]、[再試行]、[無視]の各ボタンを表示します。 |
| YesNoCancel | 14 | [はい]、[いいえ]、[キャンセル] の各ボタンを表示します。 |
| YesNo | 12 | [はい]ボタンと[いいえ]ボタンを表示します。 |
| RetryCancel | 34 | [再試行]ボタンと[キャンセル]ボタンを表示します。 |
以下はこれら定数の表示例です。
これらの定数を使うことで、以下のようにはいといいえのボタンをYesNoで簡潔に書くことができます。

ボタン種別に128の倍数の値を指定した場合、いずれのボタンも表示されません。この場合は右上のキャンセルボタンでダイアログを閉じます。

フォーカスボタン
メッセージボックスが表示されたときのデフォルトのフォーカスの位置を指定することができます。省略した場合、一番左のボタンがデフォルトのフォーカスボタンになります。
| 定数名 | 値 | 説明 |
|---|---|---|
| BTN_OK | 1 | [OK]ボタンを表示します。 |
| BTN_CANCEL | 2 | [Cancel]ボタンを表示します。 |
| BTN_YES | 4 | [はい(Y)]ボタンを表示します。 |
| BTN_NO | 8 | [いいえ(N)]ボタンを表示します。 |
| BTN_ABORT | 16 | [中止(A)]ボタンを表示します。 |
| BTN_RETRY | 32 | [再試行(R)]ボタンを表示します。 |
| BTN_IGNORE | 64 | [無視(I)]ボタンを表示します。 |
例えばファイルを削除するメッセージボックスで選択肢としてはい、いいえを表示する場合デフォルトでははいにフォーカスがありますが、いいえにフォーカスを変更します。以下のプログラムではどちらを選択してもファイルが削除されることはありません。
ユーザーの誤操作防止のためにデフォルトフォーカスの設定は重要です。間違って選択されても大丈夫なボタンにデフォルトボタンを指定します。
条件分岐
メッセージボックスの選択されたボタンで条件分岐をするには<ruby>SELECT文<rt></rt></ruby>を使います。
MSGBOX関数 (スクリプト関数)は押されたボタン種別を戻り値として返すので、その値をCASE句で分岐し処理を記述します。
以下のプログラムはボタン種別に中止、再試行、無視のボタンを選択したときの処理の流れを表したものです。分岐後の処理を中止のときはEXITEXIT(<ruby>EXITEXIT文<rt></rt></ruby>)で強制終了、再試行のときはCONTINUE(<ruby>CONTINUE文<rt></rt></ruby>)で<ruby>WHILE文<rt></rt></ruby>の先頭に戻る、無視のときはBREAK(<ruby>BREAK文<rt></rt></ruby>)でループを抜けるという処理を行っています。<ruby>WHILE文<rt></rt></ruby>の中に再試行したときの処理を記述します。以下のプログラムで再試行するのはランダム値を表示する処理です。
リンクフラグ
リンクフラグをTrueにすると、http://から始まるURLやmailto:から始まるメールアドレスをリンク形式にします。
リンクをクリックするとURLの場合はWebブラウザ、メールアドレスの場合そのアドレスを送信先としてメーラーが既定に指定されているソフトで起動します。
既定のブラウザを取得するプログラムです。
既定のメーラーを取得するプログラムです。
以下はURLにハイパーリンクを設定するプログラムの例です。ハイパーリンクに指定できるのはhttp://・https://から始まるURLのみで、ftp://やfile:///などをリンクに設定することはできません。

以下はメールアドレスにハイパーリンクを設定する例です。mailto:を含めたテキストにリンクが設定されます。

使い方
メッセージを表示するには、第一引数に表示させるメッセージを記述します。

表示するメッセージを途中で改行する場合は特殊文字の<#CR>を使います。

1行が長文になる場合は、改行する位置でプログラムも改行すると見やすくなります。
プログラム実行例
メッセージボックスで処理分岐
MSGBOXの種別の数値から表示されるボタンを取得
指定した原子番号から元素記号を出力
古いキャッシュファイルを削除する
Localフォルダ(C:\Users\username\AppData\Local\Temp \)にあるファイルの最終更新日時が7日以上前のファイルをごみ箱に移動します。
関連記事
- INPUT関数 (スクリプト関数)
- インプットボックスを表示します。
- ChooseColorA(Comdlg32.dll)






