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