現役社内SEゆゆのExcelVBA覚書

現役社内SEがExcel VBAを中心に覚書として書いていくブログです。

【条件分岐】If~ElseIf

今回は最も使用する制御文と言っていいほど重要なIf文について解説していきます!

If文とは条件分岐させるための制御文で、
MsgBoxのOKが押されたら処理続行、キャンセルが押されたら処理終了、みたいな感じに処理を分岐させることができます。

Private Sub CommandButton1_Click()  
    If MsgBox("処理を続行しますか?", vbOKCancel) = vbCancel Then  
        MsgBox "処理中断"  
    Else  
        MsgBox "処理続行!"  
    End If  
End Sub  

f:id:yumeigunshi444:20180925230618p:plain キャンセルを押した場合 f:id:yumeigunshi444:20180925230812p:plain キャンセル以外を押した場合(Else) f:id:yumeigunshi444:20180925230750p:plain

このように分岐させることができます。

ElseはIfで指定した条件にあてはまらない場合に処理されるものになります。

If~ElseIf

条件を他にも設定したい場合はElseIfを使って記述します。

Private Sub CommandButton1_Click()
    Dim num As Long
    
    num = Range("A2").Value
    
    If num < 5 Then
        MsgBox "入力された数字は5より小さいです。"
    ElseIf num > 5 Then
        MsgBox "入力された数字は5より大きいです。"
    Else
        MsgBox "入力された数字は5です。"
    End If
End Sub

セルA2に入力された数字によって処理を分岐させるプログラム
f:id:yumeigunshi444:20180925235551p:plain f:id:yumeigunshi444:20180925235614p:plain f:id:yumeigunshi444:20180925235632p:plain

複数条件

また、And, ORを使うことによって1つの式に複数の条件を指定することもできます。

Private Sub CommandButton1_Click()
    Dim num As Long
    
    num = Range("A2").Value
    
    If num = 1 Or num = 2 Then
        MsgBox "入力された数字は1か2です。"
    ElseIf num >= 3 And num <= 5 Then
        MsgBox "入力された数字は3~5です。"
    End If
End Sub

If num = 1 Or num = 2 Then

Orを使うことによって、num変数が1又は2の時にtrueとなります。

ElseIf num >= 3 And num <= 5 Then Andはnum変数が3以上 かつ 5以下の場合にtrueとなります。

このように組み合わせていけば様々な条件を作ることが可能です!

本当によく使うものなので、しっかり覚えてくださいね!