はじめに
VBAの魅力の一つが「ポップアップメッセージ(メッセージボックス)」です。
これを使うと、ユーザーに注意を促したり、確認の選択をしてもらったりが簡単にできるようになります。
今回は、基本の使い方から、条件に応じた表示、Yes/Noボタンの活用までを解説していきます!
◆ MsgBoxの基本形
Sub 単純なメッセージ()
MsgBox "処理が完了しました!"
End Sub
処理の完了をお知らせしたいときに便利。
「OK」ボタンのみが表示されます。
◆ メッセージにタイトルをつけよう
Sub タイトル付きメッセージ()
MsgBox "データの入力を確認してください", vbInformation, "注意"
End Sub
第2引数に「vbInformation」などの定数を指定することで、アイコンが表示されます。
vbInformation:青い「i」アイコンvbExclamation:黄色の「!」アイコンvbCritical:赤い「×」アイコン
タイトルは任意の文字列を設定可能。
◆ Yes/Noで分岐処理!
Sub YesNoの選択()
Dim userAnswer As VbMsgBoxResult
userAnswer = MsgBox("処理を続けますか?", vbYesNo + vbQuestion, "確認")
If userAnswer = vbYes Then
MsgBox "処理を続けます", vbInformation
Else
MsgBox "処理をキャンセルしました", vbExclamation
End If
End Sub
ユーザーに選択肢を与えて、その結果で処理を分けることができます。
+演算子で vbYesNo + vbQuestion と書くと、「Yes/Noのボタン」と「?」アイコンを表示します。
◆ 条件に応じてメッセージを出す
Sub 数値チェック()
Dim checkValue As Long
checkValue = Range("A1").Value
If checkValue >= 100 Then
MsgBox "100以上です!", vbInformation
Else
MsgBox "100未満です", vbExclamation
End If
End Sub
A1セルの値に応じてメッセージを変える例です。
「入力チェック」や「条件付き処理」には欠かせません。
◆ OK/キャンセルボタンを使いたいとき
Sub 処理を中断するか選択()
Dim result As VbMsgBoxResult
result = MsgBox("処理を中断しますか?", vbOKCancel + vbCritical, "警告")
If result = vbOK Then
MsgBox "中断しました"
Else
MsgBox "続行します"
End If
End Sub
vbOKCancel を使うと「OK/キャンセル」の選択肢が表示できます。
vbCriticalは警告メッセージに最適です。
チェックポイント✅
MsgBoxはユーザーとの「対話」に最適vbYesNo,vbOKCancelなどで選択肢が追加可能- 戻り値(vbYes、vbNoなど)を使って分岐処理を作ろう
まとめ
メッセージボックスを使うことで、ユーザーに指示を出したり、処理の判断を委ねることができます。
「入力ミスの防止」や「不要な処理の抑止」にとても効果的なので、ぜひ積極的に使ってみてください!
次回は「ユーザーフォーム」で、もっと自由に入力を受け付ける方法を紹介します。
📝 関連記事(予定)
- 【Step7】VBAでフォーム作成!ユーザー入力をもっとスマートに
- 【Step8】複数シート間の自動転記!業務を完全自動化


