条件によって処理を変えたいときに使います。
if文
書き方
- 条件式1が成立する場合、処理1を実行します。
- 条件式2が成立しない場合、処理2を実行します。
- それ以外は処理3を実行します。
- elseif、elseは省略可
if 条件式1 then 処理1elseif 条件式2 then 処理2else 処理3endif
使用例
例
Rankが1~3なら「表彰台」、4~8なら「入賞」、それ以外なら「頑張りました。」を表示します。以下は、Rankが9なのでIf,ElseIfの条件が成立しないため、else「頑張りました。」が表示されます。
Rank = 9If (1 <= Rank) And (Rank <= 3) Then jusho = "表彰台"ElseIf (4 <= Rank) And (Rank <= 8) Then jusho = "入賞"Else jusho = "頑張りました。"End If MsgBox jusho
実行結果
Select case文
書き方
select case 変数 case 値1 処理1 case 値2 処理2 … case else 処理3end select
- 変数が値1に一致する場合は処理1を実行し、end selectに移ります。
- 変数が値2に一致する場合は処理2を実行し、end selectに移ります。
- 値1、2に当てはまらない場合、処理3を実行し、end selectに移ります。
- case elseは省略可能です。
使用例
例
家族(family)が「こども」なら「こども料金」、「祖父母」なら「シニア料金」、その他なら「通常料金」を表示します。
family = "祖父母"Select Case family Case "こども" Price = "こども料金" Case "祖父母" Price = "シニア料金" Case Else Price = "通常料金"End SelectMsgBox Price
実行結果
最初に一致したcaseの処理のみ実行
例
以下の例では、「赤」が2つのcaseにありますが、最初のcaseの処理のみ実行され「暖色1」が表示されます。
sColor = "赤"Select Case sColor Case "赤", "オレンジ" kind = "暖色1" Case "赤" kind = "暖色2"End SelectMsgBox kind
実行結果
caseは範囲指定も可
例
年齢別に学校を表示します。以下の例ではage(年齢)が10なので、「Case 6 to 12」の処理が実行され、「小学校」が表示されます。
age = 10Select Case age Case 6 To 12 school = "小学校" Case 13 To 15 school = "中学校" Case 16 To 18 school = "高校"End SelectMsgBox school
実行結果
caseは列挙による指定も可
例
foodに設定した食べ物を「くだもの」「野菜」「その他」の種類に分けて、メッセージボックスに表示します。
下記では、foodに「きのこ」なので、Case Elseの処理を実行し、「その他」が出力されます。
food = "きのこ"Select Case food Case "桃", "柿", "りんご" kind = "くだもの" Case "ニンジン", "キャベツ", "トマト" kind = "野菜" Case Else kind = "その他"End SelectMsgBox kind
実行結果
if とcaseの使い分け
・if…分岐が少ない場合、AND,ORを使った複雑な条件になる場合
・case…分岐が多く、一致するかどうかを調べる単純な判別
というふうにするとよいです。分岐が多い場合は、caseにすると見た目もすっきりして見やすくなります。