注目キーワード
  1. VBA
  2. 関数
  3. ショートカット

ExcelVBAで条件分岐を学ぼう②

  • 2019年3月21日
  • 2019年3月21日
  • VBA
  • 14回
  • 0件
VBA NO IMAGE

①条件が正しいときだけ処理を実行する

VBAのコードの中で条件式を指定して判定し、その結果がTrue(真)だった場合だけ処理を実行するには、Ifステートメントを利用します。ここではIfステートメントの基本的な使いかたを紹介します。

・条件を満たす場合に1つの処理を実行する

「If」の後に条件式を指定し、さらに「Then」に続けて実行させたい処理を書くとその条件がTrueの場合だけ処理が実行されます。

・実行結果

 

・数値が一定の範囲内にあるかどうかを判定する

セルの数値が一定の範囲内か調べるためには「1000」以上と「1500」以下の2つの条件式を作り、論理演算子の「And」でつないで判定します。

 

・条件を満たす場合に複数の処理を実行する

条件が真のばあに実行したい処理が2行以上ある場合は「If 〇〇 Then 〇〇」といった書き方では対応できません。このようなときには、「If 〇〇 Then 〇〇」で条件を指定したあとに改行し、真の場合に実行したい複数行の処理を記述して最後に「End If」という書き方をします。

・実行結果①

・実行結果②

 

②条件に応じて異なる処理を実行する

Ifステートメントでは、指定した条件の判定結果がTrueかFalseかによって、それぞれ異なる処理を実行することができます。また、Trueの場合とFalseの場合のそれぞれについて、複数行の処理を実行することも可能です。

・条件に応じて異なるメッセージを表示する

条件判定がFalseのときにも処理を実行するには、IfステートメントにElseキーワードを追加して、偽のときに実行するコードを記述します。アクティブセルの値が80以上であれば「合格」、そうでなければ「不合格」というメッセージを表示させてみましょう。

・実行結果①

・実行結果②

 

・条件に応じて複数の処理を実行する

条件判定がFalseのときに複数の処理を実行したい場合は、ブロック形式のIfステートメントを利用します。「Else」キーワードはそれだけで改行し、「End If」行までの間の行にFalseのときの処理を記述します。

・実行結果①

実行結果②

 

③複数の条件を判定して処理を分ける

ここまで紹介した条件分岐では1つの条件に応じて処理を2通りに分けました。これを拡張して、1つの条件で分けた処理の中で2つ目の条件を判定することで、さらに処理を分けることも可能です。

・条件が偽の場合に別の条件を判定する

ブロック形式のIfステートメントでは、条件の判定結果がFalseの場合に、さらに別の条件を指定することもできます。このとき使用するキーワードが「ElseIf」です。Ifと同様にこのキーワードの後に条件を指定し、続けてThenを指定します。ElseIfは、Ifステートメントのブロックの中にいくつでも指定できます。さらに指定したすべての条件がFalseの場合の処理をElseで指定することも可能です。

・実行結果

 

・分岐した処理でさらに条件を判定する

指定した条件の真偽に応じて2つの処理を分け、その中でさらにIfステートメントを使用して処理を分けることもできます。このような書き方を、Ifを「ネスト」するといいます。この方法なら、条件判定がTrueの場合の処理中でも、条件に応じて複数の処理に分けることが可能になります、この場合、条件を指定する「If 〇〇 Then 〇〇」行に応じて同じ数だけ「End If」行を指定する必要があります。各「End If」行がどのIfステートメントに対応しているかをわかりやすくするために、インデントの位置を整えるように記述します。

・実行結果

NO IMAGE
最新情報をチェックしよう!