メッセージボックス
メッセージボックスは、単にメッセージを表示させるだけでなく、ボタンやアイコンのスタイル、タイトルなどを設定できます。また、ボタンに応じた結果を数値として返すこともできます。
簡単な使い方
プログラムコードに以下のように書くだけで、メッセージを表示させていくれます。
OKボンタンを押すと処理は呼び出した所へ戻ってきます。逆の言い方をすれば、Okボタンが押されるまでは、処理が終わっていないという事です。
Msgbox "こんにちは"。
メッセージボックスで使用する定数
ボタンのスタイルや、アイコン、結果などは以下のような定数を使用します。
引数buttons部分には、次の定数を使用可能
| 定 数 | 値 | 内 容 |
|---|---|---|
| vbOKOnly | 0 | 「OK」ボタンのみ |
| vbOKCancel | 1 | 「OK」ボタンと「キャンセル」ボタン |
| vbAbortRetryIgnore | 2 | 「中止」、「再試行」、および「無視」ボタン |
| vbYesNoCancel | 3 | 「はい」、「いいえ」、および「キャンセル」ボタン |
| vbYesNo | 4 | 「はい」ボタンと「いいえ」ボタン |
| vbRetryCancel | 5 | 「再試行」ボタンと「キャンセル」ボタン |
| vbCritical | 16 | 警告メッセージアイコン |
| vbQuestion | 32 | 問い合わせメッセージアイコン |
| vbExclamation | 48 | 注意メッセージアイコン |
| vbInformation | 64 | 情報メッセージアイコン |
さまざまな使用例
YesNo分岐
Sub MsgBoxSample()
Dim rc As Integer
rc = MsgBox("処理を行いますか?", vbYesNo)
If rc = vbYes Then
'Yesの処理
Else
'Noの処理
End If
End Sub
YesNo分岐 アイコン付き
Sub MsgBoxSample1()
Dim rc As Integer
rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion)
If rc = vbYes Then
'Yesの処理
Else
'Noの処理
End If
End Sub
YesNo分岐 題名付き
Sub MsgBoxSample2()
Dim rc As Integer
rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "***確認***")
If rc = vbYes Then
'Yesの処理
Else
'Noの処理
End If
End Sub
VbMsgBoxResult列挙体で明示的にする
Sub MsgBoxSample3()
Dim rc As VbMsgBoxResult
rc = MsgBox("処理を続行しますか?", vbYesNo + vbQuestion, "***確認***")
If rc = vbYes Then
MsgBox "処理を続けます", vbInformation
Else
MsgBox "処理を中止します", vbCritical
End If
End Sub
アイコン付きメッセージ
Sub MsgBoxSample4()
MsgBox "処理を続けます", vbInformation ' !マーク
MsgBox "処理を中止します", vbCritical 'Xマーク
MsgBox "ヘルプを参照してください", vbQuestion '?マーク
MsgBox "注意してください", vbExclamation '!マーク
End Sub
「はい」、「いいえ」、「キャンセル」のボタンを表示
Sub MsgBoxSample5()
Dim rc As VbMsgBoxResult
rc = MsgBox("処理を行いますか?", vbYesNoCancel)
If rc = vbYes Then
'Yesの処理
ElseIf rc = vbNo Then
'Noの処理
Else
'キャンセル
End If
End Sub
「はい」、「いいえ」、「キャンセル」 アイコン付き
Sub MsgBoxSample6()
Dim rc As VbMsgBoxResult
rc = MsgBox("処理を行いますか?", vbYesNoCancel + vbQuestion)
If rc = vbYes Then
'Yesの処理
ElseIf rc = vbNo Then
'Noの処理
Else
'キャンセル
End If
End Sub
「はい」、「いいえ」、「キャンセル」 アイコン 題名付き
Sub MsgBoxSample7()
Dim rc As VbMsgBoxResult
rc = MsgBox("処理を行いますか?", vbYesNoCancel + vbQuestion, "***確認***")
If rc = vbYes Then
'Yesの処理
ElseIf rc = vbNo Then
'Noの処理
Else
'キャンセル
End If
End Sub
改行の定数
Sub MsgBoxSample8()
MsgBox "改行します。" & vbLf & "改行しました。"
End Sub









