#7 条件分岐を使ってみよう!【Excelマクロ講座】
分岐処理をしてみよう!
まずは簡単な例から!
セルA1に入力された値が奇数か偶数かメッセージボックスで教えてくれるマクロを作ってみよう。
Sub 奇数か偶数か()
If Range("A1").Value Mod 2 = 0 Then
MsgBox "偶数"
End Sub
A1に好きな数字を入れて試してみてね!
入力した数字が偶数の時だけメッセージボックスが表示されるよ!
【解説】
If Range("A1").Value Mod 2 = 0 Then
If~Then…間に条件式を入れる
Mod 2 = 0…「Mod」は「割り算の余り」を出す演算子。
つまり「2で割って余りが0」ということは偶数の場合という意味!
条件が成立していない時の処理を追加!
Sub 奇数か偶数か()
If Range("A1").Value Mod 2 = 0 Then
MsgBox "偶数"
Else
MsgBox "奇数"
End If
End Sub
【解説】
Else…If~End Ifの間に「Else」を入れる。
その下に条件が成立しなかったときの処理を書く。
複数の条件を指定してみる!
セルA1に入力された値が「青」「赤」「黄」のどれか判定して「すすめ!」「とまれ!」「ちゅうい!」と表示する信号機みたいなマクロを作ってみよう!
さっきと違うのは条件が2つ以上あること!
Sub 信号()
If Range("A1").Value = "青" Then
MsgBox "すすめ!"
ElseIf Range("A1").Value = "赤" Then
MsgBox "とまれ"
ElseIf Range("A1").Value = "黄" Then
MsgBox "ちゅうい!"
Else
MsgBox "該当なし"
End If
End Sub
【解説】
ElseIf Range("A1").Value = "赤" Then
ElseIf~then…間に条件式を入れる
同じ要領で複数条件を指定していける!
Else…上記のどの条件にも一致しなかった場合の処理
繰り返し処理と組み合わせて使ってみよう!
前回やった繰り返し処理と使えばぐーんとできることが増える!
ヒント:処理は入れ子にできる!
前回の講座↓
~~~シンキングタイム~~~
答え!
Sub 奇数の時は1足す()
Dim i As Variant
For i = 1 To 5
If Cells(i, 1).Value Mod 2 <> 0 Then
Cells(i, 1).Value = Cells(i, 1).Value + 1
End If
Next i
End Sub
For~Nextの間にIfを入れるのがポイント!
【解説】
If Cells(i, 1).Value Mod 2 <> 0 Then
<>0…今回は「偶数の時」ではなく「奇数の時」なので「<>」不等号を使って「〇〇以外」という式を使う!
ここまでお疲れさまでした!
◎これを解説して欲しい!などリクエストあれば、こちらからお気軽にどうぞ
この記事が気に入ったらサポートをしてみませんか?