MSGBOX関数

本ページには広告が含まれています。

メッセージボックスを表示します。第一引数に表示するメッセージ、第二引数に表示するボタンの種類を指定します。ボタンが押されるまで処理はストップします。処理を止めずメッセージを表示するだけの場合、FUKIDASI関数を使用します。メッセージボックスの表示に制限時間を設定するにはWshShell.Popup メソッドを使います。

右上のバツをクリックした場合、BTN_CANCEL(2)が返ります。

構文
  1. 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_OK1[OK]ボタンを表示します。
BTN_CANCEL2[Cancel]ボタンを表示します。
BTN_YES4[はい(Y)]ボタンを表示します。
BTN_NO8[いいえ(N)]ボタンを表示します。
BTN_ABORT16[中止(A)]ボタンを表示します。
BTN_RETRY32[再試行(R)]ボタンを表示します。
BTN_IGNORE64[無視(I)]ボタンを表示します。

以下がそれぞれ表示されるボタンです。( )内のアルファベットのキーを押すことで選択することもできます。

.png"] .png"] .png"] .png"] .png"] .png"] .png"]

複数ボタンの指定

複数のボタンを指定する場合は定数名を論理和(OR)で繋げます。

複数のボタンを指定した場合、メッセージボックスには定数の順番に関係なく左からはい、いいえ、OK、Cancel、中止、再試行、無視の順にボタンが表示されます。

UWSC

よく使う組み合わせを定数として定義しておくと引数を簡潔に書けます。使いたいボタンの定数を論理和(OR)で繋げて書きます。頻繁に使う場合は以下の定数を定義しておくと良いです。

UWSC

以下は数値を直接指定したものです。

UWSC

以下のボタンの組み合わせはExcel VBAを参考にしています。

定数名値説明
OKOnly1[OK]ボタンのみを表示します。
OKCancel3[OK]ボタンと[Cancel]ボタンを表示します。
AbortRetryIgnore112[中止]、[再試行]、[無視]の各ボタンを表示します。
YesNoCancel14[はい]、[いいえ]、[キャンセル] の各ボタンを表示します。
YesNo12[はい]ボタンと[いいえ]ボタンを表示します。
RetryCancel34[再試行]ボタンと[キャンセル]ボタンを表示します。

以下はこれら定数の表示例です。

  1. OKOnly
    OKOnly
  2. OKCancel
    OKCancel
  3. AbortRetryIgnore
    AbortRetryIgnore
  4. YesNoCancel
    YesNoCancel
  5. YesNo
    YesNo
  6. RetryCancel
    RetryCancel

これらの定数を使うことで、以下のようにはいといいえのボタンをYesNoで簡潔に書くことができます。

UWSC
YesNo例

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

UWSC
ボタンの表示なし

フォーカスボタン

メッセージボックスが表示されたときのデフォルトのフォーカスの位置を指定することができます。省略した場合、一番左のボタンがデフォルトのフォーカスボタンになります。

定数名値説明
BTN_OK1[OK]ボタンを表示します。
BTN_CANCEL2[Cancel]ボタンを表示します。
BTN_YES4[はい(Y)]ボタンを表示します。
BTN_NO8[いいえ(N)]ボタンを表示します。
BTN_ABORT16[中止(A)]ボタンを表示します。
BTN_RETRY32[再試行(R)]ボタンを表示します。
BTN_IGNORE64[無視(I)]ボタンを表示します。

例えばファイルを削除するメッセージボックスで選択肢としてはい、いいえを表示する場合デフォルトでははいにフォーカスがありますが、いいえにフォーカスを変更します。以下のプログラムではどちらを選択してもファイルが削除されることはありません。

UWSC

ユーザーの誤操作防止のためにデフォルトフォーカスの設定は重要です。間違って選択されても大丈夫なボタンにデフォルトボタンを指定します。

条件分岐

メッセージボックスの選択されたボタンで条件分岐をするにはSELECT文を使います。

MSGBOX関数は押されたボタン種別を戻り値として返すので、その値をCASE句で分岐し処理を記述します。

UWSC

以下のプログラムはボタン種別に中止、再試行、無視のボタンを選択したときの処理の流れを表したものです。分岐後の処理を中止のときはEXITEXIT(EXITEXIT文)で強制終了、再試行のときはCONTINUE(CONTINUE文)でWHILE文の先頭に戻る、無視のときはBREAK(BREAK文)でループを抜けるという処理を行っています。WHILE文の中に再試行したときの処理を記述します。以下のプログラムで再試行するのはランダム値を表示する処理です。

UWSC

リンクフラグ

リンクフラグをTrueにすると、http://から始まるURLやmailto:から始まるメールアドレスをリンク形式にします。

リンクをクリックするとURLの場合はWebブラウザ、メールアドレスの場合そのアドレスを送信先としてメーラーが既定に指定されているソフトで起動します。

既定のブラウザを取得するプログラムです。

UWSC

既定のメーラーを取得するプログラムです。

UWSC

以下はURLにハイパーリンクを設定するプログラムの例です。ハイパーリンクに指定できるのはhttp://・https://から始まるURLのみで、ftp://やfile:///などをリンクに設定することはできません。

UWSC
リンクフラグ URL

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

UWSC
リンクフラグ メール

使い方

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

UWSC
メッセージボックス

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

UWSC
改行コード

1行が長文になる場合は、改行する位置でプログラムも改行すると見やすくなります。

UWSC

プログラム実行例

UWSCを起動したときのウィンドウの座標をマウス位置の座標に書き換える

UWSC
使用関数

メッセージボックスで処理分岐

UWSC
使用関数

選択した個人用フォルダーのパスを表示

UWSC
使用関数

ポップアップウィンドウを表示

UWSC
結果
使用関数

ファイルをZIP形式で圧縮する

UWSC
使用関数

MSGBOXの種別の数値から表示されるボタンを取得

UWSC
結果
プレーンテキスト
使用関数

メッセージボックスを表示し、押されたボタンによって処理を変える

UWSC
使用関数

指定した原子番号から元素記号を出力

UWSC
結果
プレーンテキスト
使用関数

古いキャッシュファイルを削除する

Localフォルダ(C:\Users\username\AppData\Local\Temp \)にあるファイルの最終更新日時が7日以上前のファイルをごみ箱に移動します。

UWSC
使用関数

関連記事

ChooseColorA(Comdlg32.dll)
INPUT関数 (スクリプト関数)
インプットボックスを表示します。