第四回目 SCHOOL OF VBA 講義内容
こんにちは。伊川(@naonaoke)です。
今回は、条件判定について解説します。
IF構文は、VBAにおいて本当に重要な構文になります。
世間一般では、IFになると、難しいと思われがちですが、普通に考えると理解できます。
フローチャートや、真、偽のような言葉を見ると難しく感じます。
条件判定
条件判定 作成手順その1 考え方
VBAでは、いろいろな条件分岐の方法があります。
IF構文、Select Case、Switch構文などがあります。
私は、実務では、IF構文、Select Caseをよく使います。
フローチャートで考えると下記の図のようになります。

条件1が成就したならば、▲▲▲▲▲
Endif
このルールだけを覚えてください。
こんな書き方になります。
IF構文については、実際に記載して作動を確認することで、本当に理解できます。
しかし、なかなかできないものです。
今回は、伊川の行動パターンについて、条件判定をします。
条件判定 作成手順その2 もしも、伊川が10,000円もっていたら?

Range(“A1”)に、伊川がお金を10,000円持っている という条件の時に、どのよう行動をするのでしょうか?
判定ボタンをクリックしてください。

Range(“A2”) に、焼肉に行くと表示されました。

判定ボタンをクリックしてください。

Range(“A2”)=”帰る”と表示されます。
これが、条件判定になります。

Sub test1()
If Range("A1") = "伊川がお金を10,000円持っている" Then
Range("A2") = "焼肉に行く"
Else
Range("A2") = "帰る"
End If
End Sub
これが二者択一の条件判定になります。
条件判定 作成手順その3 もしも、伊川が30,000円もっていたら?
普段は、30,000円の大金は持ち歩きません。
しかし、大金を持っているときは、行動範囲も大きくなります。

上の図のような条件の時はどうなるのでしょうか?





Sub test2()
If Range("A1") = "伊川がお金を30,000円持っている" Then
Range("A2") = "キャバクラへ行く"
ElseIf Range("A1") = "伊川がお金を10,000円持っている" Then
Range("A2") = "焼肉へ行く"
ElseIf Range("A1") = "伊川がお金を5,000円持っている" Then
Range("A2") = "居酒屋へ行く"
Else
Range("A2") = "帰る"
End If
End Sub
このような複数の条件の時は、Select Caseを利用したほうが、コード自体は見やすいですね。
今回は、Select Caseの説明は割愛します。
条件判定 作成手順その3 判定する条件が複数ある場合は?

Range(“A1”)が、伊 で、 Range(“B1”)が、川のとき、Range(“A2”)に伊川 直助と表示します。

伊川は、And Orを利用するときは、条件全体をカッコでくくります。
このほうが確実だからです。
Sub test3()
If (Range("A1") = "伊" And Range("B1") = "川") Then
Range("A2") = "伊川 直助"
Else
Range("A2") = "知らない人"
End If
End Sub
ここがポイント

条件分岐は、VBAでは必須です。しかし、難しいという先入観で、挫折する人も多いかと思います。
書籍だけではなく、身近なことに置き換えることで、理解しやすくなります。
まとめ
例えが、あまりよろしくないかもしれませんが、条件分岐は難しくありません。
自分でコードを記載して試してみることが理解への一番の近道です。












