分かりやすく、使いやすく。

Yes/No ダイアログを使用する方法

スポンサーリンク

Excel VBA で「はい」「いいえ」のメッセージボックスを表示して、ユーザーの選択したボタンによって処理を分岐するには、 MsgBox に vbYesNo を指定します。

  1. 質問ダイアログ(メッセージボックス)
  2. 警告ダイアログ(メッセージボックス)
  3. 情報ダイアログ(メッセージボックス)
  4. エラーダイアログ(メッセージボックス)
  5. 初期選択ボタンを「いいえ」にする方法


【関連】
Yes/No/Cancel ダイアログを使用する方法
OKボタンだけのダイアログを使用する方法

質問ダイアログ(メッセージボックス)

vbYesNo と一緒に vbQuestion を指定すると質問を意味するアイコン付きでダイアログが表示されます。

Yes/Noダイアログ(質問)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("処理を続行しますか", vbYesNo + vbQuestion, "タイトルに表示する文字列")
    
    If rc = vbYes Then
        MsgBox "「はい」の場合の処理"
    Else
        MsgBox "「いいえ」の場合の処理"
    End If
End Sub 

警告ダイアログ(メッセージボックス)

vbYesNo と一緒に vbExclamation を指定すると警告を意味するアイコン付きでダイアログが表示されます。

Yes/Noダイアログ(警告)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("処理を続行しますか", vbYesNo + vbExclamation, "タイトルに表示する文字列")
    
    If rc = vbYes Then
        MsgBox "「はい」の場合の処理"
    Else
        MsgBox "「いいえ」の場合の処理"
    End If
End Sub 

情報ダイアログ(メッセージボックス)

vbYesNo と一緒に vbInformation を指定すると情報を意味するアイコン付きでダイアログが表示されます。

Yes/Noダイアログ(情報)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
Sub test()
    Dim rc As Integer
    rc = MsgBox("処理を続行しますか", vbYesNo + vbInformation, "タイトルに表示する文字列")
    
    If rc = vbYes Then
        MsgBox "「はい」の場合の処理"
    Else
        MsgBox "「いいえ」の場合の処理"
    End If
End Sub 

エラーダイアログ(メッセージボックス)

vbYesNo と一緒に vbCritical を指定すると致命的なエラーを意味するアイコン付きでダイアログが表示されます。

Yes/Noダイアログ(エラー)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("処理を続行しますか", vbYesNo + vbCritical, "タイトルに表示する文字列")
    
    If rc = vbYes Then
        MsgBox "「はい」の場合の処理"
    Else
        MsgBox "「いいえ」の場合の処理"
    End If
End Sub 

初期選択ボタンを「いいえ」にする方法

vbYesNo のダイアログでは、通常は初期状態で「はい」が選択されています。このデフォルトで選択されているボタンを「いいえ」に変更するには、vbDefaultButton2 を一緒に指定します。

Yes/Noダイアログ(いいえがデフォルト)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("どっち?", vbYesNo + vbQuestion + vbDefaultButton2, "タイトル")
    
    If rc = vbYes Then
        MsgBox "「はい」の場合の処理"
    Else
        MsgBox "「いいえ」の場合の処理"
    End If
End Sub 
スポンサーリンク
スポンサーリンク