【エクセルVBA】条件一致のときだけ処理する(if / select case)

条件によって処理を変えたいときに使います。

if文

書き方

  • 条件式1が成立する場合、処理1を実行します。
  • 条件式2が成立しない場合、処理2を実行します。
  • それ以外は処理3を実行します。
  • elseif、elseは省略可

 

使用例


Rankが1~3なら「表彰台」、4~8なら「入賞」、それ以外なら「頑張りました。」を表示します。以下は、Rankが9なのでIf,ElseIfの条件が成立しないため、else「頑張りました。」が表示されます。

実行結果

Select case文

書き方

  • 変数が値1に一致する場合は処理1を実行し、end selectに移ります。
  • 変数が値2に一致する場合は処理2を実行し、end selectに移ります。
  • 値1、2に当てはまらない場合、処理3を実行し、end selectに移ります。
  • case elseは省略可能です。

使用例


家族(family)が「こども」なら「こども料金」、「祖父母」なら「シニア料金」、その他なら「通常料金」を表示します。

実行結果

最初に一致したcaseの処理のみ実行


以下の例では、「赤」が2つのcaseにありますが、最初のcaseの処理のみ実行され「暖色1」が表示されます。

実行結果

 

caseは範囲指定も可


年齢別に学校を表示します。以下の例ではage(年齢)が10なので、「Case 6 to 12」の処理が実行され、「小学校」が表示されます。

実行結果

caseは列挙による指定も可


foodに設定した食べ物を「くだもの」「野菜」「その他」の種類に分けて、メッセージボックスに表示します。

下記では、foodに「きのこ」なので、Case Elseの処理を実行し、「その他」が出力されます。

実行結果

if とcaseの使い分け

・if…分岐が少ない場合、AND,ORを使った複雑な条件になる場合
・case…分岐が多く、一致するかどうかを調べる単純な判別

というふうにするとよいです。分岐が多い場合は、caseにすると見た目もすっきりして見やすくなります。

コメント

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