メインコンテンツへスキップ
見出し画像

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

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

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



     
     
    漫画家・イラストレーター 新卒で総務に配属。事務歴・Excel歴7年。会社の人に聞かれて教えているうちにExcelに詳しくなる。 今はフリーランスとして在宅でできる仕事をしながら、夫と娘と猫に囲まれてゆるりと暮らしている。

    あなたへのおすすめ