MsgBox関数はダイアログボックスにメッセージを表示します。MsgBox関数はVBAでユーザーにメッセージを表示するだけではなく、さまざまなボタンを表示してユーザーと対話することもできます。ここではMsgBox関数の基本の使い方を表示結果と共に解説します。
メッセージを表示する
メッセージを表示するには、MsgBox関数の引数に文字列を指定して呼び出します。、
Sub sample()
MsgBox "メッセージを表示!"
End Sub
コードを実行すると、次のようにメッセージが表示されます。

メッセージを複数行に表示するには、指定する文字列を改行文字を使って改行します。改行文字にはVBAの組み込み定数「vbLF(ラインフィード)」、「vbCr(キャリッジリターン)」、「vbCrLf(キャリッジリターン+ラインフィード)」のいずれかを利用できます。
Sub sample()
MsgBox "1行目。" & vbCrLf & "2行目。"
End Sub
このコードを実行すると、次のようにメッセージが表示されます。

ダイアログボックスのタイトルを設定する
ダイアログボックスのタイトルを設定するには、MsgBox関数の3番目の引数にタイトルに設定する文字列を渡します。
MsgBox "メッセージです", , "タイトルです"
あるいは名前付き引数を使って次のように指定します。
MsgBox Prompt:="メッセージです", Title:="タイトルです"
コードを実行すると、次のようにメッセージが表示されます。

ボタンを表示する
メッセージボックスには、さまざまなボタンを表示することができます。どのようなボタンを表示するかは、ボタンの種類に応じた定数をMsgBoxの2番目の引数に指定します。指定できる定数は次の通りです。
ボタンの定数 | 値 | 説明 |
---|---|---|
vbOKOnly | 0 | [OK]ボタンを表示する |
vbOKCancel | 1 | [OK]、[キャンセル]ボタンを表示する |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、[無視]ボタンを表示する |
vbYesNoCancel | 3 | [はい]、[いいえ]、[キャンセル]ボタンを表示する |
vbYesNo | 4 | [はい]、[いいえ]ボタンを表示する |
vbRetryCancel | 5 | [再試行]、[キャンセル]ボタンを表示する |
次のコードはそれぞれのボタンを持つメッセージボックスを表示します。
Sub sample()
Dim result as Integer
result = MsgBox("OK", vbOKOnly)
result = MsgBox("OK、キャンセル", vbOKCancel)
result = MsgBox("中止、再試行、無視", vbAbortRetryIgnore)
result = MsgBox("はい、いいえ、キャンセル", vbYesNoCancel)
result = MsgBox("はい、いいえ", vbYesNo)
result = MsgBox("再試行、キャンセル", vbRetryCancel)
End Sub
コードを実行すると、次のようなボタンを持つメッセージボックスが表示されます。






MsgBoxの2番目の引数には、ここで紹介したボタンの定数以外にも、この後に紹介するさまざまな定数を指定できます。複数の定数を同時に指定する場合には次のように定数を加算して指定します。
Sub sample()
Dim result As Integer
result = MsgBox("定数を組み合わせる。", vbOKCancel + vbQuestion + vbDefaultButton2)
End Sub
メッセージボックスの戻り値
ボタンをクリックするとMsgBoxの戻り値として、ボタンに応じた整数型の値が返ります。メッセージボックスのボタンが押されると、MsgBox関数はボタンに応じた値を返します。返される値は次の通りです。
ボタンの戻り値 | 値 | 説明 |
---|---|---|
vbOK | 1 | [OK]ボタン |
vbCancel | 2 | [キャンセル]ボタン |
vbAbort | 3 | [中止]ボタン |
vbRetry | 4 | [再試行]ボタン |
vbIgnore | 5 | [無視]ボタン |
vbYes | 6 | [はい]ボタン |
vbNo | 7 | [いいえ]ボタン |
次のコードは返された値によって処理を振り分けています。
Sub sample()
Dim result As Integer
Do While True
result = MsgBox("ボタンをどれか押して下さし。", vbYesNoCancel)
Select Case result
Case vbYes
MsgBox "「はい」をおしたね!"
Case vbNo
MsgBox "「いいえ」をおしたね!"
Case vbCancel
MsgBox "キャンセルします。"
Exit Do
End Select
Loop
End Sub
アイコンを表示する
メッセージボックスにはメッセージと共にアイコンを表示することもできます。それにはアイコンの種類に応じた定数をMsgBoxの2番目の引数に指定します。指定できる定数には次のものがあります。
アイコンの定数 | 値 | 説明 |
---|---|---|
vbCritical | 16 | クリティカルアイコンを表示する |
vbQuestion | 32 | クエスチョンアイコンを表示する |
vbExclamation | 48 | ビックリマークアイコンを表示する |
vbInformation | 64 | 情報アイコンを表示する |
次のコードはそれぞれのアイコンを表示します。
Sub sample()
MsgBox "クリティカル", vbCritical
MsgBox "クエスチョン", vbQuestion
MsgBox "ビックリマーク", vbExclamation
MsgBox "情報", vbInformation
End Sub
実行すると次のように表示されます。




デフォルトボタンを設定する
デフォルトボタンとは、メッセージボックスが最初に表示されたときに選択状態になっているボタンです。Enterキーを押してボタンを押すことが出来ます。
デフォルトボタンの定数 | 値 | 説明 |
---|---|---|
vbDefaultButton1 | 0 | デフォルトで第1ボタンを選択状態する |
vbDefaultButton2 | 256 | デフォルトで第2ボタンを選択状態する |
vbDefaultButton3 | 512 | デフォルトで第3ボタンを選択状態する |
vbDefaultButton4 | 768 | デフォルトで第4ボタンを選択状態する |
次のコードはキャンセルボタン(2番目のボタン)をデフォルトボタンに設定します。
Sub sample()
Dim result As Integer
result = MsgBox("キャンセルボタンがデフォルト", vbOKCancel + vbDefaultButton2)
If result = vbCancel Then
MsgBox "キャンセルボタンが押された!"
End If
End Sub
まとめ
MsgBox関数でメッセージを表示することは、非常によくあります。ぜひこの機会に使い方を習得しておきましょう。