Sub YesNoSample()
Dim msg As Integer
msg = MsgBox("○○しますか?", vbYesNo, "タイトル")
If msg = vbYes Then
' /// Yesを選択した際の処理 '
MsgBox "Yes"
ElseIf msg = vbNo Then
' /// Noを選択した際の処理 '
MsgBox "No"
' /// Noを選択した場合は、プロシージャを抜ける '
Exit Sub
End If
' /// Yesを選択した場合は、処理を続ける '
MsgBox "続きの処理"
End Sub
個人的なポイントは、「いいえ」を選択した後に、"Exit Sub"でプロシージャを抜けている点です。ここで抜けないと「はい」を選んでも、「いいえ」を選んでも最後まで処理が実行されてしまいます。
もちろん、続きの処理を後に書かずに、全てYesを選択した際の処理に含めれば問題ありませんが、コードの長さや可読性を考えると難しいケースが出てくると思います。
また、「はい」と「いいえ」に加えて、「キャンセル」ボタンを表示したい場合は、"vbYesNo"を"vbYesNoCancel"に変えて、分岐式に"vbCancel"の処理を書けばOKです。
0 件のコメント:
コメントを投稿