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