Excel VBA 入門講座

Excel VBA Tips Excel VBA 入門講座

メッセージボックス(MsgBox)

メッセージボックス(MsgBox)は、よくマクロの実行前、実行後によく使用する関数ですが用途に応じて定数の組み合わせにより表示するボタンとアイコンを制御します。

構文
MsgBox (prompt, [ buttons, ] [ title, ])
promptメッセージボックスにメッセージとして表示される文字列を指定します
buttons省略可能、表示させるボタンの種類、アイコンの表示を指定します
title省略可能、メッセージボックスのタイトルバーに表示される文字列を指定します
MsgBoxパラメータ一覧
定数ボタン・アイコン
0vbOKOnly[OK]
1vbOKCancel[OK] [キャンセル]
2vbAbortRetryIgnore[中止] [再試行] [無視]
3vbYesNoCancel[はい] [いいえ] [キャンセル]
4vbYesNo[はい] [いいえ]
5vbRetryCancel[再試行] [キャンセル]
16vbCritical[重大なメッセージ] アイコン
32vbQuestion[警告クエリ] アイコン
48vbExclamation[警告メッセージ] アイコン
64vbInformation[情報メッセージ] アイコン
MsgBoxの戻り値一覧
定数ボタン
1vbOKOK
2vbCancelCancel
3vbAbort中止
4vbRetry再試行
5vbIgnore無視
6vbYesはい
7vbNoいいえ

以下、定数によるメッセージボックスの表示です。ボタンの定数とアイコンの定数を加算することによりメッセージボックスの表示を制御しています。また戻り値を定数により判定しています。

定数によるMsgBoxの表示
メッセージボックスコード
メッセージボックス(OK)

    ret = msgbox("実行しました", vbOKOnly + vbInformation, "実行結果")
    
    If ret = vbOK Then
        msgbox ("OKがクリックされました")
    End If
メッセージボックス(Yes No)

    ret = msgbox("実行します。よろしいですか?", vbOKCancel + vbQuestion, "実行確認")
    
    If ret = vbOK Then
        msgbox ("OKがクリックされました")
    ElseIf ret = vbCancel Then
        msgbox ("キャンセルがクリックされました")
    End If
メッセージボックス(Yes No Cancel)

    ret = msgbox("実行します。よろしいですか?", vbYesNoCancel + vbQuestion, "実行確認")
    
    If ret = vbYes Then
        msgbox ("はいクリックされました")
    ElseIf ret = vbNo Then
        msgbox ("いいえがクリックされました")
    ElseIf ret = vbCancel Then
        msgbox ("キャンセルがクリックされました")
    End If
メッセージボックス(Critical)

    ret = msgbox("エラーが発生しました", vbOKOnly + vbCritical, "実行結果")
    
    If ret = vbOK Then
        msgbox ("OKがクリックされました")
    End If
メッセージボックス(Exclamation)

    ret = msgbox("値が入力されていません", vbOKOnly + vbExclamation, "入力確認")
    
    If ret = vbOK Then
        msgbox ("OKがクリックされました")
    End If

以下、値によるメッセージボックスの表示です。ボタンの値とアイコンの値を加算することによりメッセージボックスの表示を制御しています。また戻り値を値により判定しています。

値によるMsgBoxの表示
メッセージボックスコード
メッセージボックス(OK)

    ret = msgbox("実行しました", 0 + 64, "実行結果")
    
    If ret = 1 Then
        msgbox ("OKがクリックされました")
    End If
メッセージボックス(Yes No)

    ret = msgbox("実行します。よろしいですか?", 1 + 32, "実行確認")
    
    If ret = 1 Then
        msgbox ("OKがクリックされました")
    ElseIf ret = 2 Then
        msgbox ("キャンセルがクリックされました")
    End If
メッセージボックス(Yes No Cancel)

    ret = msgbox("実行します。よろしいですか?", 3 + 32, "実行確認")
    
    If ret = 6 Then
        msgbox ("はいクリックされました")
    ElseIf ret = 7 Then
        msgbox ("いいえがクリックされました")
    ElseIf ret = 2 Then
        msgbox ("キャンセルがクリックされました")
    End If
メッセージボックス(Critical)

    ret = msgbox("エラーが発生しました", 0 + 16, "実行結果")
    
    If ret = 1 Then
        msgbox ("OKがクリックされました")
    End If
メッセージボックス(Exclamation)

    ret = msgbox("エラーが発生しました", 0 + 48, "実行結果")
    
    If ret = 1 Then
        msgbox ("OKがクリックされました")
    End If
Excel VBA Tips Excel VBA 入門講座 TOP