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

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

スポンサーリンク

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

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


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

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

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

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

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("どうする?", vbYesNoCancel + vbQuestion, "タイトルの文字列")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 

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

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

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

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("どうする?", vbYesNoCancel + vbExclamation, "タイトルの文字列")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 

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

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

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

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("どうする?", vbYesNoCancel + vbInformation, "タイトルの文字列")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 

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

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

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

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("どうする?", vbYesNoCancel + vbCritical, "タイトルの文字列")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 

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

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

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

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("3択", vbYesNoCancel + vbQuestion + vbDefaultButton2, "タイトル")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 

初期選択ボタンを「キャンセル」にする方法

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

Yes/No/Cancelダイアログ(キャンセルがデフォルト)

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Sub test()
    Dim rc As Integer
    rc = MsgBox("3択", vbYesNoCancel + vbQuestion + vbDefaultButton3, "タイトル")
    
    Select Case rc
        Case vbYes
            MsgBox "「はい」の場合の処理"
        Case vbNo
            MsgBox "「いいえ」の場合の処理"
        Case vbCancel
            MsgBox "「キャンセル」の場合の処理"
        Case Else
            'ここには来ません。
    End Select
End Sub 
スポンサーリンク
スポンサーリンク