条件で処理を分けてみよう
とつぜんですが、「条件」って、わかりますか?
「○○が××だったら△△する」とか「□□だったらしない」のように、あることを「する」か「しない」かを決めるときに、それを判断するための材料のことです。
日曜日ならば学校に行かない、とか、雨の日ならば傘をさす、のように、たいていの場合は「~ならば」と言いかえることができます。
まずは実際に見てみましょう。
1 2 3 4 5 6 7 |
Sub 条件分岐() Dim a As Long a = 100 If a > 70 Then Cells(1, 1) = "aは70より大きいです。" End If End Sub |
エクセルのA1セルに「aは70より大きいです。」と表示されればOKです。
If a > 70 Thenの意味は、「もし、aが70より大きければ、thenの後ろからend if までの処理をしろ、そうでなかったらなにもするな」です。「70より大きいか」の部分が「条件」にあたります。
100は70より大きいので、thenの後ろのCells(1, 1) = "aは70より大きいです。
が、実行されたんですね。
「そうでなかったら○○しろ」と書きたいときはどうでしょう。そういう時は次のように書きます。
1 2 3 4 5 6 7 8 9 |
Sub 条件分岐() Dim a As Long a = 50 If a > 70 Then Cells(1, 1) = "aは70より大きいです。" Else Cells(1, 1) = "aは70以下です。" End If End Sub |
の意味は、「もし、aが70より大きければ、thenの後ろからElse までの処理をしろ、そうでなかったらElse以降の処理をしろ」です。
もっと複雑な条件にもできます。
1 2 3 4 5 6 7 8 9 10 11 |
Sub 条件分岐() Dim a As Long a = 60 If a > 70 Then Cells(1, 1) = "aは70より大きいです。" ElseIf a > 50 Then Cells(1, 1) = "aは70以下で50より大きいです。" Else Cells(1, 1) = "aは50以下です。" End If End Sub |
aの値をいろいろ変えて、どうなるか見てみてください。
ElseIf
はいくらでも追加できるので、もっとたくさんの条件を追加することもできます。
自由に条件を追加してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub 条件分岐() Dim a As Long Dim b As Long a = 60 b = 100 If a > 70 And b > 70 Then Cells(1, 1) = "aもbも70より大きいです。" End If If a > 70 Or b > 70 Then Cells(2, 1) = "aかbのどちらか、また両方が70より大きいです。" End If End Sub |
こんなふうに、いくつかの変数を組み合わせることもできます。
複数の条件がどれも成立していることを条件とする場合は、「and」、
複数の条件のうち、どれか一つでも成立していることを条件とする場合は、「or」で、条件をつなげて書きます。
ところで、最初に決めた値で条件判定するだけでは、ぜんぜん面白くないので、最後に、前回おぼえたfor nextの繰り返しの中で使う例も書いておきましょうか。
3の倍数の時だけ「にゃー!」と泣いてみることにしましょう。
1 2 3 4 5 6 7 8 9 10 |
Sub 繰り返し() Dim i As Long For i = 1 To 10 If i = 3 Or i = 6 Or i = 9 Then Cells(i, 1) = "にゃー--!" Else Cells(i, 1) = "…。" End If Next i End Sub |
1 …。
2 …。
3 にゃー--!
4 …。
5 …。
6 にゃー--!
7 …。
8 …。
9 にゃー--!
10 …。
こんな感じになりましたか?
他にも自分でいろんな条件を作って試してみましょう。
次回予告
次回は、プログラムの実行ボタンを作ろうです。
おたのしみに。