【VBA】「はい/いいえ」で回答できる質問をして、回答によって処理を分岐させる

VBAで
 ・「はい/いいえ」で回答できる質問をして
 ・回答によって処理を分岐させる
ことができます!

PR

VBAコード

ここでは例として
 ・「処理を実行しますか?」という質問メッセージを表示して
 ・「はい」と回答した場合、メッセージ「完了しました!」を表示し処理を中断(=終了)
 ・「いいえ」と回答した場合、メッセージ「処理を中止します!」を表示
します。

Option Explicit

Sub sample()
    
    Dim answer As Integer
     
    answer = MsgBox("処理を実行しますか?", vbYesNo + vbQuestion, "確認")
    
    If answer = vbNo Then
        MsgBox "処理を中止します!", vbOKOnly + vbInformation, "中止"
        Exit Sub
    End If
    
    'メイン処理
    '・
    '・
    '・
    '・
    
    MsgBox "完了しました!", vbOKOnly + vbInformation, "完了"
    
End Sub

「MsgBox関数」の引数に「vbYesNo」を記述することで、「はい/いいえ」ボタンが表示されます(7行目)。

「はい/いいえ」ボタン
「はい/いいえ」ボタン

「?」アイコンを表示させるため、「MsgBox関数」の引数に「vbQuestion」を記述しています(7行目)。

「?」アイコン
「?」アイコン

「MsgBox関数」で質問をして、戻り値として「回答」を取得しています(7行目)。
※「はい」の場合は「vbYes(=6)」が返ります。
※「いいえ」の場合は「vbNo(=7)」が返ります。

「Exitステートメント」により、処理を中断(=終了)させています(11行目)。

PR

実行結果

実行すると「質問メッセージが」表示されます。
※「はい/いいえ」ボタンが表示されます。

質問メッセージ
質問メッセージ


「はい」をクリックすると、「完了しました!」が表示されました。

「はい」をクリックした場合
「はい」をクリックした場合


「いいえ」をクリックすると、「処理を中止します!」が表示されました。

「いいえ」をクリックした場合
「いいえ」をクリックした場合
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「MsgBox関数」の定数(=引数と戻り値)

タイトルとURLをコピーしました