VBAの分岐はIFに任せておけ!

IFの基本的な使い方から、エクセルVBAでよく使う記述の実例を挙げながら説明します

僕が作るマクロでIFが入っていないのはないんじゃないか。と思うくらいすべての作成の基本となるのが、IFです。

すべの基本となるので、ある程度ロジックは知っておいた方が良いと思うんですが、IF自体は非常に単純ですので、安心して勉強していきましょう。

VBAの基本は、IFから始まる!

細かい話をいろいろとしても、イメージがつかないと思うので、構文をまずは見てください。

IFの文法は、IFとElseIFとElseを覚えておけばOK

IFには3つの分岐があります。IFとElseIFとElseですが、それぞれに特徴があります。

上記のコードを日本語で読み上げてみると、
「もし、条件式1だったら、処理1を実施してください。
もしくは条件式2だったら、処理2を実施して下さい。
どれでもなければ、処理3を実施してください。以上です。」となります。

End IFは絶対に忘れるな!

End IFとは、文章でいう句読点の。と同じ意味です。つまり、「IFは終わりました!!!」と宣言しているのがEnd IFです。

IFを書いたらすぐにEnd IFも書いておくと便利です。

IFの雰囲気をつかんでくれていると嬉しいです。次は、条件式で使用する論理演算子と比較演算子を勉強してみましょう。

IFのポイント

IFは、もし

ElseIfはもしくは

Elseは、どれでもない

EndIfは、はい!おわりました

IFの条件式で使用する演算子

IFの論理演算子

論理演算子 内容
Or AかBのどちらか一方がTrueの値を返す。
And AとBのどちらともTrueの場合のみ、Trueの値を返す。
Not AがTrueの場合、Falseの値を返す。AがFalseの場合、Trueの値を返す。

IFの比較演算子

比較演算子 内容
A < B AはBより小さい
A <= B AはB以下
A > B AはBより大きい
A >= B AはB以上
A = B AとBは同じ
A <> B AとBは違う

IFを使った例題

通常のIFとElseIfとElseについての例題

IfのVBAコード

Ifの文章では基本的なものだ。数値が一番示しやすいので、上記は数値の以上やより大きいなどを使っている。

条件式に入れる比較演算子のイメージがわかってくれると嬉しい。

結果

論理演算子のAndの使い方

IfでAndを使ったコード

Andの書き方はちゃんと覚えましょう。条件式をAndでくっつけるんです。

この条件式と、この条件式が満たされているのであれば、処理に進む。

結果

論理演算子のOrの使い方

IfでOrを使ったコード

結果

僕はNotを使わない

Notとは、Trueと返す式を書いていたとしても、Falseで返すのが機能です。

このNotを使うと可読性がいちじるしく低下します。VBAの可読性って覚えているうちは気にしなくて良いんですが、そのエクセルの更新を5年後にやったとしたらどうでしょうか?

可読性は高いのに越したことはありませんが、これは個人の意見です。その点はご留意ください。あなたが決めたルールが一番やりやすいです。

僕が論理演算子のNotをIFの文で使わない理由

可読性に関してイメージしてもらえればうれしいです。上記のコードを回して、三角と打ち込んだらどうなりますか?また、四角と打ち込んだらどうなりますか?

論理演算子のNotは使わない

可読性が下がり、のちの自分の首を絞める。ただし、個人差があるので自由に!

結果

IFで何もしない!はわざわざ言わなくて良い

何もしないのは、条件式にすら反映させなければ済みます。

たまに、質問箱とかで見受けるんですが、何もさせない。と何もしないで待たせる。は別です。

待たせる方法はたくさんあります。別記事となりますが、準備中です。

まとめると

IFは、VBAを書く上で欠かせないコードの一つです。しっかりと、基本を固めておきましょう。

また、できる限り自分なりのルールは決めておいた方が良いと思います。ルールをいったん決めて、そこからやってみていろいろと実験してみてください。

プログラミング言語は、たくさんありますが僕はVBAをやって本当に良かったと思っています。ぜひご活用ください。