「vba if else使わない」
「マクロ if else なにも表示しない」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)の条件分岐文・If文で、Elseのときに何もしないようにするには、コードをどう書けばいいのかを探している方による検索です。
ElseありのIf文
まずは、ElseのあるIf文を確認しましょう。
If Range("A1").Value >= 80 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If
上記のマクロを実行すると、アクティブシートのA1セルの値が80以上のときに「合格」、そうでなければ「不合格」というメッセージが表示されます。
ElseなしのIf文
で、本題のElseのときに何もしないIf文です。
If Range("A1").Value >= 80 Then
MsgBox "合格"
End If
上記のマクロを実行すると、アクティブシートのA1セルの値が80以上のときにだけ「合格」というメッセージが表示されます。80未満のときには何も行われません。
先の、Elseのあるマクロから、
Else
MsgBox "不合格"
を、削除しただけです。これでElseのときに何もしない状態になります。
Elseなしの1行のIf文
このElseのないIf文は、1行で書くこともできます。
If Range("A1").Value >= 80 Then MsgBox "合格"
End Sub先のElseなしの条件分岐文から
End If
を削除して、条件の書かれている、
If Range("A1").Value >= 80 Then
と、実行内容の書かれている、
MsgBox "合格"
を同じ行に書いた状態です。
Elseなしの場合のありがちなミス
Elseなしの条件分岐文の、
If Range("A1").Value >= 80 Then
MsgBox "合格"
End If
と、1行で書いた、
If Range("A1").Value >= 80 Then MsgBox "合格"
の区別が明確になっていない方が、以下のようなミスをしてしまう傾向があるように感じています。
End Ifを付ける必要のない1行のElseなしIf文で不要な「End If」をつけて、
If Range("A1").Value >= 80 Then MsgBox "合格" End If
と書いてしまったり、逆に、複数行で書いているのに必要な、
End If
を書き忘れてしまったり、といったミスです。
- Newer:PowerPoint 2013で背景のスタイルは?
- Older:VBAでモヤモヤしていたことがかなりスッキリした
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » Excel VBAのIf文でElseの場合に何もしない