MsgBox関数のポイント

MsgBox関数は、引数に指定した文字列を画面に表示する関数だ。このページでは、MsgBox関数の基本的な使い方とVBAエキスパート試験のポイントをまとめた。

スポンサーリンク

基本的な使い方

MsgBox関数には引数が3つある。1つ目の引数「文字列」は必ず指定する必要がある。

【書式】
MsgBox(文字列, ボタンとアイコン, タイトル)

次のプロシージャはMsgBox関数の例だ。

Sub Test()
    MsgBox "テストです"
End Sub

第2引数にアイコン定数を指定すると、アイコンを表示することができる。

Sub Test()
    MsgBox "テストです", vbInformation
End Sub

第2引数にボタン定数を指定すると、メッセージボックスのボタンを変更することができる。

Sub Test()
    MsgBox "保存しますか?", vbYesNo
End Sub

メッセージボックスのタイトルを変更したい場合は、第3引数にタイトル文字列を指定する。

Sub Test()
    MsgBox "保存しますか?", vbYesNo, "確認メッセージ"
End Sub

メッセージボックス関数の戻り値には、どのボタンが押されたかの情報が格納されている。押されたボタンによって、Ifステートメントで処理を分岐するのはよくある処理の流れだ。

Sub Test()
    Dim ret As Long
    ret = MsgBox("ボタンを選択してください", vbYesNo)

    If ret = vbYes Then
        Debug.Print "「はい」ボタンが選択されました"
    Else
        Debug.Print "「いいえ」ボタンが選択されました"
    End If
End Sub

エキスパート試験のポイント

1.引数の順番に注意すること。第2引数と第3引数が間違いやすい。

○ MsgBox(文字列, ボタンとアイコン, タイトル)
× MsgBox(文字列, タイトル, ボタンとアイコン)

2.ボタンとアイコンを同時に表示したい場合は、それぞれの定数を+演算子で加算する。

Sub Test()
    MsgBox "上書きしますか?", vbYesNo + vbExclamation
End Sub

3..ボタン定数と表示されるボタンを覚えておく。詳細はMsgBox関数のボタンとアイコン一覧を参照。

例:vbRetryCancel

4.アイコン定数と表示されるアイコンを覚えておく。詳細はMsgBox関数のボタンとアイコン一覧を参照。

例:vbCritical

5.戻り値を取得するときは、MsgBox関数の引数全体を()で囲む必要がある。

'OK
Sub Test()
    Dim ret As Long
    ret = MsgBox("ボタンを選択してください", vbYesNo)
    Debug.Print ret
End Sub
'NG
Sub Test()
    Dim ret As Long
    '()が無いとコンパイルエラーが発生する
    ret = MsgBox "ボタンを選択してください", vbYesNo 
    Debug.Print ret
End Sub

練習問題

プロシージャ「Test」を実行したところ、次のメッセージボックスが表示された。空欄【1】【2】に当てはまる語句として正しいものはどれか。次の中から1つ選択しなさい。

Sub Test()
    Dim ret As Long
    ret = MsgBox(【 1 】, 【 2 】)
    Debug.Print ret
End Sub

  1. 【1】 vbOkNgCancel
    【2】 "変更内容を保存しますか?"
  2. 【1】 vbYesNoCancel
    【2】 "変更内容を保存しますか?"
  3. 【1】 "変更内容を保存しますか?"
    【2】 vbOkNgCancel
  4. 【1】 "変更内容を保存しますか?"
    【2】 vbYesNoCancel

正解を見る

4

コメント