And、Orですべてを評価しないようにするたとえば次のようなコードでは「質問1」のメッセージボックスで「いいえ」を選んだとしても「質問2」が表示されてしまいます。これはAnd演算の1番目のオペランドがFalseに評価された場合でも2番目のオペランドが実行されるからです。 If (MsgBox("質問1", MsgBoxStyle.YesNo) = MsgBoxResult.Yes) _ And (MsgBox("質問2", MsgBoxStyle.YesNo) = MsgBoxResult.Yes) Then MsgBox("両方Yesです。") End If しかし次のようにAndの代わりにAndAlsoを使えば、「質問1」で「いいえ」を選んだときに「質問2」が表示されることがなくなります。AndAlso演算は1番目のオペランドがFalseに評価されるとすぐにFalseを返すためです。
![And、Orですべてを評価しないようにする](https://cdn-ak-scissors.b.st-hatena.com/image/square/ad5184c94385058498621b3dc64601758ff95445/height=288;version=1;width=512/https%3A%2F%2Fdobon.net%2Fs%2Fimg%2Fog%2Fm%2Fvb%2Fdotnet%2Fvb6%2Fandalso.jpg)