2010/04/26

VBAで「はい」と「いいえ」の選択

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 件のコメント:

コメントを投稿