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】 vbOkNgCancel
【2】 "変更内容を保存しますか?" - 【1】 vbYesNoCancel
【2】 "変更内容を保存しますか?" - 【1】 "変更内容を保存しますか?"
【2】 vbOkNgCancel - 【1】 "変更内容を保存しますか?"
【2】 vbYesNoCancel
正解を見る
4
コメント