メッセージボックス

初級VBA

メッセージボックス

 メッセージボックスは、単にメッセージを表示させるだけでなく、ボタンアイコンのスタイルタイトルなどを設定できます。また、ボタンに応じた結果を数値として返すこともできます。

簡単な使い方

 プログラムコードに以下のように書くだけで、メッセージを表示させていくれます。
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
タイトルとURLをコピーしました