VBScriptでメッセージボックスを上手く活用しよう

VBScript

VBScriptでは、メッセージボックスを使ってユーザーとの対話や情報の表示、デバッグを行うことができます。

この記事では、VBScriptでメッセージボックスを効果的に使用する方法を解説します。

メッセージボックスの基本

メッセージボックスは、メッセージを表示するダイアログボックス(入力を促すために表示される小さなウィンドウのこと)のことです。

VBScriptでメッセージボックスを表示するには、MsgBox関数を使用します。

基本的な構文は以下の通りです。

MsgBox prompt[, buttons][, title][, helpfile, context]

prompt(プロンプト)

必須で必要な引数で、「促す」という意味の英単語です。

メッセージとして表示する値を文字列で指定します。

文字列は、ダブルクォーテーションで囲んだ文字のことで、文字を代入した変数も引数として渡すことができます。

使用する文字の幅にもよりますが、最大で約1024文字入力できます。

メッセージを複数行表示させたい場合は、下記の記述例のように「vbCrLf」を用いることで表示できます。

「&(アンパサンド)」は、文字列を結合させたいときに使用します。

また、メッセージの文字を表示させたくない場合は、「MsgBox “”」を入力してください。

MsgBox "メッセージボックスを" & vbCrLf & "使ってみよう!", vbYesNoCancel, "タイトル"

buttons(ボタン)

省略可能な任意で入力する引数です。

表示させるボタンの数と種類を指定します。省略した場合は、「OK」ボタンのみ表示されます。

省略方法は、カンマが2つ連続するように記述するか引数「prompt」のみ入力します。

MsgBox "メッセージボックスを使ってみよう!",, "タイトル"
'または
MsgBox "メッセージボックスを使ってみよう!"

ボタンの種類の一覧を紹介します。

定数表示されるボタンやアイコンの種類と補足
vbOKOnly0「OK」ボタン
vbOKCancel1「OK」と「キャンセル」ボタン
vbAbortRetryIgnore2中止」と「再試行と「無視」ボタン
vbYesNoCancel3はい」と「いいえ」と「キャンセル」ボタン
vbYesNo4「はい」と「いいえ」ボタン
vbRetryCancel5再試行」と「キャンセル」ボタン
vbCritical16重大なメッセージ」アイコン
vbQuestion32警告クエリ」アイコン
vbExclamation48警告メッセージ」アイコン
vbInformation64情報メッセージ」アイコン
vbDefaultButton10左から1番目に表示されているボタンがアクティブになる
vbDefaultButton2256左から2番目に表示されているボタンがアクティブになる
※2番目が存在しない場合は、vbDefaultButton1と同等
vbDefaultButton3512左から3番目に表示されているボタンがアクティブになる
※3番目が存在しない場合は、vbDefaultButton1と同等
vbDefaultButton4768左から4番目に表示されているボタンがアクティブになる
※4番目が存在しない場合は、vbDefaultButton1と同等
vbApplicationModal0メッセージボックスに応答するまで実行しているVBScriptのプログラムが進まない
vbSystemModal4096メッセージボックスに応答するまで、すべてのアプリケーションが中断する
※私の環境では特に変化なしでした
vbMsgBoxHelpButton16384ヘルプ」ボタンを追加
vbMsgBoxSetForeground65536前景ウィンドウとして指定する
※私の環境では特に変化なしでした
vbMsgBoxRight524288テキストを右揃えにする
vbMsgBoxRtlReading1048576ヘブライ語とアラビア語のシステムでテキストが右から左に読む形式で表示される

ご紹介した定数は、組み合わせて使用することができます。

例えば「警告メッセージ」と「はい」「いいえ」「キャンセル」ボタンの組み合わせは、下記のように「vbExclamation + vbYesNoCancel」と記述します。

「+(プラス)」は、数値を足したいときに使用します。

Const vbYesNoCancel = 3
Const vbExclamation = 48
MsgBox "メッセージボックスを使ってみよう!", vbExclamation + vbYesNoCancel, "タイトル"

title(タイトル)

省略可能な任意で入力する引数です。

メッセージボックスの上部に表示させるタイトル部分の値を文字列で入力します。

helpfile(ヘルプファイル)

context(コンテキスト)

省略可能な任意で入力する引数です。

この引数を指定することで「ヘルプ」ボタンが表示され、ヘルプボタンを左クリックすることで、コンパイルされたヘルプファイル(拡張子chm)などを呼び出すことができます。

ヘルプファイルとは、使い方や注意事項が書かれている取扱説明書のようなファイルを指します。

VBScriptで書かれたプログラムは、人間が認識しやすいように記述したものでコンピューターは認識できません。

コンパイルとは、コンピューターが記述されたプログラムを認識できるように機械語へ変換することです。

VBScriptでは、この引数を使用できませんので省略しましょう。

VBScriptと親和性のあるプログラミング言語「VBA」では使用できることを確認しています。

この引数を使用する場合は、VBAを検討してください。

メッセージボックスの種類

情報を伝えるメッセージボックス

MsgBox "これは情報を伝えるメッセージボックスです。"

警告を伝えるメッセージボックス

MsgBox "これは警告を伝えるメッセージボックスです。", vbExclamation

エラーを伝えるメッセージボックス

MsgBox "これはエラーを伝えるメッセージボックスです。", vbCritical

質問を投げかけるメッセージボックス

MsgBox "これは質問を投げかけるメッセージボックスです。", vbQuestion + vbYesNo

メッセージボックスの応用

ユーザーからの入力を受け取る

Dim userInput
userInput = InputBox("名前を入力してください:")
MsgBox "こんにちは、" & userInput & "さん!"

条件に応じてメッセージボックスを表示する

Dim answer
answer = MsgBox("続行しますか?", vbQuestion + vbYesNo)
If answer = vbYes Then
    MsgBox "処理を続行します。"
Else
    MsgBox "処理をキャンセルしました。"
End If

どのボタンを押したかが判断できる整数値を取得することができます。

取得するには、Subプロシージャではなく、Functionプロシージャの書き方をします。

取得した整数値がどのボタンを指すか紹介します。

定数ボタン
vbOK1OK
vbCancel2キャンセル
vbAbort3中止
vbRetry4再試行
vbIgnore5無視
vbYes6はい
vbNo7いいえ

右上の「×」ボタンをクリックした場合は、「キャンセル」ボタンと同等の整数値「2」が取得されます。

「キャンセル」ボタンがない場合は、「OK」ボタンと同等の整数値「1」を取得します。

まとめ

VBScriptのMsgBox関数を活用することで、メッセージボックスを効果的に利用できます。

メッセージの種類や表示するボタンを選択し、ユーザーとの対話や情報の提示、デバッグを行いましょう。