VBA メッセージを表示(MsgBox)

✅ 基本構文

MsgBox(prompt, [buttons], [title])
引数名説明
prompt表示したいメッセージ(文字列)
buttonsボタンやアイコンの種類、デフォルトボタンなどの定数(省略可)
titleダイアログのタイトルバーに表示する文字列(省略可)

🧪 最もシンプルな使用例

MsgBox "処理が完了しました。"

➤ 結果:

「OK」ボタン付きのメッセージウィンドウが表示される。


🖱 表示ボタンとアイコンのオプション

ボタンの種類(定数)

定数名表示されるボタン
vbOKOnly0OK(既定)
vbOKCancel1OK / キャンセル
vbAbortRetryIgnore2中止 / 再試行 / 無視
vbYesNoCancel3はい / いいえ / キャンセル
vbYesNo4はい / いいえ
vbRetryCancel5再試行 / キャンセル

アイコンの種類

定数名表示されるアイコン
vbCritical16エラーマーク(×)
vbQuestion32質問マーク(?)
vbExclamation48警告マーク(!)
vbInformation64情報マーク(ℹ)

デフォルトボタン指定(複合的に使用)

定数名説明
vbDefaultButton10最初のボタン(既定)
vbDefaultButton22562番目のボタンを既定に
vbDefaultButton35123番目のボタンを既定に

🧩 ボタンとアイコンを組み合わせた例

MsgBox "本当に削除しますか?", vbYesNo + vbCritical + vbDefaultButton2, "確認"
  • ボタン:はい / いいえ
  • アイコン:×(重大な警告)
  • デフォルト選択:いいえ

⛳ 応答を取得する(関数として使用)

Dim answer As VbMsgBoxResult
answer = MsgBox("保存しますか?", vbYesNoCancel + vbQuestion, "保存確認")

Select Case answer
Case vbYes
MsgBox "保存しました。"
Case vbNo
MsgBox "保存しませんでした。"
Case vbCancel
MsgBox "操作をキャンセルしました。"
End Select

➤ VbMsgBoxResult 戻り値

定数ボタン押下結果
vbOK1OK
vbCancel2キャンセル
vbAbort3中止
vbRetry4再試行
vbIgnore5無視
vbYes6はい
vbNo7いいえ

📐 サンプル

1. エラーメッセージ

MsgBox "ファイルが見つかりません。", vbExclamation, "エラー"

2. 上書き確認

If MsgBox("上書きしますか?", vbYesNo + vbQuestion, "確認") = vbYes Then
' 上書き処理
End If

3. 処理完了通知

MsgBox "処理が完了しました。", vbInformation, "完了"

📌 応用:変数や改行の使用

改行の追加(vbCrLf or vbNewLine)

MsgBox "登録が完了しました。" & vbCrLf & "続けて作業しますか?", vbYesNo

変数と組み合わせ

Dim userName As String
userName = "田中"
MsgBox userName & "さん、ようこそ!", vbInformation, "挨拶"

💡 開発中に便利な使い方(デバッグ)

MsgBox "デバッグ:変数Aの値は " & A

開発者が途中の値を確認したり、フロー制御の判断材料にできます。


🔐 注意点

項目説明
長いメッセージの分割80文字以上のメッセージは vbCrLf で改行推奨
多言語対応ハードコーディングせず、変数やリソースで管理
ユーザー操作の強要に注意メッセージが多すぎるとユーザー体験が悪化
モーダル表示(操作ブロック)MsgBox 表示中は他の操作ができない(意図的)

🧾 まとめ

要素内容
主な用途ユーザーへの通知、確認、警告、入力待ち
結果取得VbMsgBoxResultvbYes, vbNo, vbCancelなど)
オプションvbYesNo, vbCritical, vbDefaultButton2など
使用上の注意長すぎる文章は分ける、連発しすぎない
実務利用例削除確認・保存確認・エラー表示・処理完了通知など
タイトルとURLをコピーしました