【Excel VBA】メッセージを表示する(MsgBox関数)

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番目の引数に指定します。指定できる定数は次の通りです。

ボタンの定数説明
vbOKOnly0[OK]ボタンを表示する
vbOKCancel1[OK]、[キャンセル]ボタンを表示する
vbAbortRetryIgnore2[中止]、[再試行]、[無視]ボタンを表示する
vbYesNoCancel3[はい]、[いいえ]、[キャンセル]ボタンを表示する
vbYesNo4[はい]、[いいえ]ボタンを表示する
vbRetryCancel5[再試行]、[キャンセル]ボタンを表示する

次のコードはそれぞれのボタンを持つメッセージボックスを表示します。

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

コードを実行すると、次のようなボタンを持つメッセージボックスが表示されます。

メッセージボックスのOKボタンの例
vbOKOnly
メッセージボックスのOK、キャンセルボタンの例
vbOKCancel
メッセージボックスの中止、再試行、無視ボタンの例
vbAbortRetryIgnore
メッセージボックスのはい、いいえ、キャンセルボタンの例
vbYesNoCancel
メッセージボックスのはい、いいえボタンの例
vbYesNo
vbRetryCancel
複数の定数を同時に指定する

MsgBoxの2番目の引数には、ここで紹介したボタンの定数以外にも、この後に紹介するさまざまな定数を指定できます。複数の定数を同時に指定する場合には次のように定数を加算して指定します。

Sub sample()
    Dim result As Integer
    result = MsgBox("定数を組み合わせる。", vbOKCancel + vbQuestion + vbDefaultButton2)
End Sub

メッセージボックスの戻り値

ボタンをクリックするとMsgBoxの戻り値として、ボタンに応じた整数型の値が返ります。メッセージボックスのボタンが押されると、MsgBox関数はボタンに応じた値を返します。返される値は次の通りです。

ボタンの戻り値説明
vbOK1[OK]ボタン
vbCancel2[キャンセル]ボタン
vbAbort3[中止]ボタン
vbRetry4[再試行]ボタン
vbIgnore5[無視]ボタン
vbYes6[はい]ボタン
vbNo7[いいえ]ボタン

次のコードは返された値によって処理を振り分けています。

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番目の引数に指定します。指定できる定数には次のものがあります。

アイコンの定数説明
vbCritical16クリティカルアイコンを表示する
vbQuestion32クエスチョンアイコンを表示する
vbExclamation48ビックリマークアイコンを表示する
vbInformation64情報アイコンを表示する

次のコードはそれぞれのアイコンを表示します。

Sub sample()
    MsgBox "クリティカル", vbCritical
    MsgBox "クエスチョン", vbQuestion
    MsgBox "ビックリマーク", vbExclamation
    MsgBox "情報", vbInformation
End Sub

実行すると次のように表示されます。

クリティカルアイコンの表示
vbCritical
クエスチョンアイコンを表示
vbQuestion
ビックリマークアイコンを表示
vbExclamation
情報アイコンを表示
vbInformation

デフォルトボタンを設定する

デフォルトボタンとは、メッセージボックスが最初に表示されたときに選択状態になっているボタンです。Enterキーを押してボタンを押すことが出来ます。

デフォルトボタンの定数説明
vbDefaultButton10デフォルトで第1ボタンを選択状態する
vbDefaultButton2256デフォルトで第2ボタンを選択状態する
vbDefaultButton3512デフォルトで第3ボタンを選択状態する
vbDefaultButton4768デフォルトで第4ボタンを選択状態する

次のコードはキャンセルボタン(2番目のボタン)をデフォルトボタンに設定します。

Sub sample()
    Dim result As Integer
    result = MsgBox("キャンセルボタンがデフォルト", vbOKCancel + vbDefaultButton2)
    If result = vbCancel Then
        MsgBox "キャンセルボタンが押された!"
    End If
End Sub

まとめ

MsgBox関数でメッセージを表示することは、非常によくあります。ぜひこの機会に使い方を習得しておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次