【VBA】If文とSelect Case文の使い方

Excel・VBA

今回は、条件判断に関するIf文とSelect Case文に関してまとめたので紹介します。

If文による条件判断

If文の基本的な書き方は次の通りです。

《If文の基本的な書き方》
 
If 条件 then
  処理
 End If

条件に合致した場合のみ、処理が行われます。条件に合致しなかった場合は、End Ifの次の行へ処理が進みます。

また、条件の書き方については次のようになります。

《条件の書き方》
 
条件例① 変数Aが10以上である場合 → A >= 10
 条件例② 変数Aと変数Bの和が10   → A + B = 10

条件ごとに処理を変える(ElseIf , Else)

条件によって処理を変えたい場合は、Else If もしくはElseを使います。見た目は似ていますが、判断基準が異なりますので注意してください。

✔判断したい条件が二つ以上ある時には、Else If

《Else Ifの使い方》
 If 条件① then
  処理A
 ElseIf  条件② then
    処理B
 End if

条件①に合致した場合は処理Aへ進み、条件①には合致せず、条件②に合致した場合には処理Bへと進みます。条件①、条件②の両方に合致しなかった場合は、End If の次の行へ処理が進みます。

✔条件に合致する場合としない場合で処理を分けるときには、Else

《Elseの使い方》
 
IF 条件 then
  処理A
 Else
  処理B
 End If

条件に合致した場合は処理Aへと進み、合致しない場合は処理Bへ進みます。

複数の条件を設定する(and , or )

今度は、判断したい条件が複数あった場合の使い方です。

2つ以上の条件を同時に満たしているかの判断(and)

たとえば、条件Aと条件Bの両方に合致する場合には、処理へ進みたいといったケースです。数学的には、条件A かつ 条件Bとなります。

複数の条件を同時に満たしているかを判断する場合、複数の条件を繋げるには”and”を使います。

今回のケースでは条件Aかつ条件Bとなるので、条件A and 条件Bと書きます。

《”and”を使用した複数の条件の設定》
 
If 条件A and 条件B then
 処理
 End If

条件がもっと増えた場合でも、条件A and 条件B and 条件C and ・・・とつなげていくことができます。

なお、条件の書き方について次の点を注意してください。

条件A:変数Aが10以上である。
条件B:変数Aが100未満である。

上記の条件をand 分でつなげるときについやってしまいなのが、

A >=10 and <100

これは、間違いですので注意してください。正しくは、

A >=10 and A <100

となります。あくまでも”and”は異なる条件を繋げているだけだということを意識してください。

また、”and”を使わずに複数の条件を設定する方法もあります。その場合は、次のように書きます。

《”and”を使わないで複数の条件を設定する方法》
 If 条件A then
  If 条件B then
   処理
  End If
 End If

もっと条件が増えた場合には、上記の条件BのIf分の中に条件Cを、さらに条件Cの中に条件D・・・となります。この場合、条件が増えるほどIf文が増えるので結びのEnd Ifを書き忘れないように注意してください。

どちらを使うかは好みだと思います。and でつなぐ方が見やすい方もいればIfを重ねて書いた方が見やすいという方もいますので、自分の好きな方を使いましょう。

2つ以上の条件のどちらかを満たしているかの判断(or)

今度は、条件Aもしくは条件Bを満たしている場合に処理を行いたい場合です。数学的には、条件A or 条件Bの場合です。

複数ある条件のうち、どれか一つでも満たしているかを判断する場合、条件を繋げるには”or”を使います。

このケースでは、条件Aもしくは条件Bですので条件A or 条件Bと書きます。

《”or”を使用した複数の条件を設定する方法
 If 条件A or 条件B then
  処理
 End If

条件が増えた場合は、条件A or 条件B or 条件C・・・とつなげていきます。

なお”or”で分を繋げるときも”and”の時と同様に条件の書き方に注意してください。

また、or”を使わずに”もしくは”を判断したい場合は、ElseIfで代用できます

《”and”を使わないで複数の条件を設定する方法》
 If 条件A then
  処理
 ElseIf 条件B then
  処理
 End If

処理は同じ内容を記載します。条件が増えた場合でもElseIf 条件○を増やしていけばよいです。この書き方は文が長くなるので”or”を使うことをお勧めします。

Select Case文による条件判断

If文と同様に条件判断を行い、処理を行うのがSelect Case文です。Select Case文は、ある対象を判断したい条件が複数あり、それぞれの条件に合わせて処理を変えたいときに向いています。

基本的な使い方は、次の通りです。

《Select Case文の基本的な書き方》
 Select Case 対象
  case = 条件①
   処理A
  case = 条件②
   処理B
   ・
   ・
   ・
 End select

条件の書き方はIf文とやや異なります。 たとえば、変数Aの値について判断したい場合についてを例に挙げると 次のようになります。

対象=Aとなり、
case = ○○ ”○○”にはAの条件を書きます。(たとえばAが10の時を想定する場合はcase=10)

具体的に書くと

Select Case A
 case = 10  ’(Aの値が10の場合)
  A=A+30
 case = 15  ‘(Aの値が15の場合)
  A=A+40
End Select

となります。

また、Select文でも”and”や ”or”も使えます。ただし、この場合も書き方には気を付けてください。

条件による場合分けについては以上になります。


コメント

タイトルとURLをコピーしました