見出し画像

#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
…今回は「偶数の時」ではなく「奇数の時」なので「<>」不等号を使って「〇〇以外」という式を使う!

ここまでお疲れさまでした!

◎これを解説して欲しい!などリクエストあれば、こちらからお気軽にどうぞ



この記事が気に入ったらサポートをしてみませんか?