この記事ではMsgBox関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
MsgBox関数の使い方と注意点
MsgBox関数は、メッセージボックスを表示してユーザーに通知したり、入力を求めたりする関数です。
簡単な対話や確認を行う際に非常によく使われます。
構文
MsgBox(プロンプト [, ボタンの種類] [, タイトル] [, ヘルプファイル] [, コンテキスト])
- プロンプト : 表示するメッセージ文字列(必須)
- ボタンの種類 : ボタン・アイコンの組み合わせを指定する定数(省略可)
- タイトル : メッセージボックスのタイトルバーに表示する文字列(省略可)
- ヘルプファイル/コンテキスト : ヘルプボタン表示時のヘルプファイル情報(省略可)
- 戻り値 : ユーザーが選択したボタンに応じた定数(VbMsgBoxResult型)
主な「ボタンの種類」定数
| 定数 | 値 | 表示内容 |
|---|---|---|
| vbOKOnly | 0 | ![]() |
| vbOKCancel | 1 | ![]() |
| vbAbortRetryIgnore | 2 | ![]() |
| vbYesNoCancel | 3 | ![]() |
| vbYesNo | 4 | ![]() |
| vbRetryCancel | 5 | ![]() |
主な「アイコン」定数
| 定数 | 値 | 表示されるアイコン |
|---|---|---|
| vbCritical | 16 | ![]() |
| vbQuestion | 32 | ![]() |
| vbExclamation | 48 | ![]() |
| vbInformation | 64 | ![]() |
戻り値の種類
| 定数 | 値 | 対応するボタン |
|---|---|---|
| vbOK | 1 | OK |
| vbCancel | 2 | キャンセル |
| vbAbort | 3 | 中止 |
| vbRetry | 4 | 再試行 |
| vbIgnore | 5 | 無視 |
| vbYes | 6 | はい |
| vbNo | 7 | いいえ |
使用例
単純な通知を表示する(OKボタンのみ)
Sub Sample()
MsgBox "処理が完了しました。"
End Sub
タイトルとアイコンを指定する
Sub Sample()
MsgBox "保存が完了しました。", vbInformation, "完了"
End Sub
「はい・いいえ」の確認を取り、分岐する
Sub Sample()
Dim result As VbMsgBoxResult
result = MsgBox("削除してもよろしいですか?", vbYesNo + vbQuestion, "確認")
If result = vbYes Then
MsgBox "削除します。"
Else
MsgBox "キャンセルされました。"
End If
End Sub
⚠️注意
「vbOKOnly」以外を使用する場合は戻り値を受け取るようにする
vbYesNoやvbOKCancelなどを使用する場合、戻り値(選択されたボタン)をMsgBox()から受け取らないと意味がありません。
Sub Sample()
Dim Answer As VbMsgBoxResult
Answer = MsgBox("本当に終了しますか?", vbYesNo)
If Answer = vbYes Then End
End Sub
複数の定数は「+」で組み合わせる
MsgBox("削除してもよろしいですか?", vbYesNo + vbQuestion, "確認")
長いメッセージは改行を入れる
メッセージを複数行にしたい場合は vbCrLf(改行)を使います。
MsgBox "ファイルを保存しました。" & vbCrLf & "続けて別の処理を実行しますか?", vbYesNo
関連するVBA関数
- InputBox関数
- Debug.Print
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方















