【VBA】IF文の使い方【数値・文字列を比較して条件分岐する】

VBA

IF文とは“条件を設定して「満たしている」と「満たしていない」ときに処理を分岐する”ためのステートメントです。

 

少し実用性のあるシステムを作ろうと思えば、必ずここで紹介するIF文を使うことになります。

なので、ぜひ、IF文を覚えていってください。

スポンサーリンク



IF文の記述方法

ここでは「IF文の記述の仕方」「ざっくりとした参考コード」について解説していきます。

IF文の書式

IF文の記述の仕方は下のとおりです。

IF文は上のように条件を満たすかどうかで処理を分岐します。

条件はboolean型なので、『条件』部分には「True(条件を満たす)」「False(条件を満たさない)」の2つが戻り値になる数式などを記載する必要があります。

 

そして、条件を満した場合は上でいうところの『処理1』、条件を満たさない場合は『処理2』の片方の処理を行うという流れになります。

 

IF文の参考コード

たぶん、上の『IF文の書式』だけでは理解できない方もいるかと思います。

なので、下に実際にIF文を使った簡単なコードを貼るので確認してみてください。

上のコードの結果は「”変数iは2以上です”」が表示されます。

 

次にざっくり上のコードの説明は下のようになります。

4行目:変数iに3を代入

6行目:「変数iが2以上かどうか」を条件に指定

7行目:「変数が2以上」だった場合に、イミディエイトに”変数iは2以上です”と表示する処理

9行目:「変数が2以上」でなかった場合に、イミディエイトに”変数iは2未満です”と表示する処理

 

IF文はFOR文と組み合わせて使うことが多い

また、IF文はFOR文と組み合わせて使用されることが多いです。

例えば、上のコードにFOR文を組み込むとしたら下のようになります。

上のコードではFOR文で変数iを1~3に変動させています。

その変動させた変数iの値が2以上かどうかによって処理を分岐させています。

 

上のコードを実行した結果が下のようになります。

変数iは1回目は”1”なので、条件である「2以上かどうか」を満たさないので、”変数iは2未満です”と表示されます。

ですが、2回目以降は変数iが”2以上”になるので、”変数iは2以上です”がイミディエイトに表示されます。

 

IF文の実践コード

では、IF文を実際のエクセルシート内のセルに使ってみます。

例えば、下の表に対して試してみます。

上の表では一人ひとりに点数を設定しています。

そして、点数が80以上の場合は”A”、80未満の場合は”B”を列Eに表示するというコードを書いてみます。

 

3行目:「3行目の4列目(D3)の値が80以上かどうか」という条件を設定

4行目:条件を満たした場合は、3行目の5列目(E3)に”A”を表示

6行目:条件を満たしていない場合は、3行目の5列目(E3)に”B”を表示

 

そして、上のコードを実行すると下のようになります。

判定対象であるセルD3の値が80以上だったので、評価列であるセルE3には”A”が表示されました。

 

FOR文を組み合わせた場合

上の表のE列全てを埋めるためにFOR文と組み合わせると下のようなコードになります。

 

そして、上のコードを実行すると下のような結果になります。

今回のコードではFOR文で変数iを3から7まで繰り返すようにしました。

これにより、3行目から7行目まで処理を繰り返し、同時にIF文の条件分岐も行えています。

 

ちなみにIF文について、より深く理解したい方は下の記事も目を通してみてください。

【VBA】IF文のネストの使い方【複数の条件分岐・処理を行う】
複数のIF文を使うことで、さらに「条件」と「処理」を設けることができるようになります。 なので、より詳細な判定や処理ができるようになります。 しかし、ネストが深くなればなるほど理解に苦しむコードになってしまうので、使いす...
【VBA】IF文と論理演算子を組み合わせる【複数条件を指定する】
本来のIF文は1つにつき1つの条件を指定します。 ですが、時には処理分岐の内容は同じでも、条件が複数ほしいときがあります。 そんなときには論理演算子である『AND』や『OR』といったモノを用いると、同時に複数の条件で判定...

スポンサーリンク

コメント