VBA|条件を満たした場合と複数の条件によって処理を分岐させる(If~Then~Else)

エクセルVBA VBAの基礎・入門



前回は「条件を満たした場合(真の場合)」に処理を実行するIf~Thenステートメントについて説明しました。

参考: Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令)

「条件を満たさなかった場合(偽の場合)」には、処理が実行されませんでしたが、Elseステートメントを使えば、「条件を満たさなかった場合(偽の場合)」の処理を指定することができます。



IF 条件式 Then 処理1 Else 処理2

条件式を満たした場合は処理1を実行し、満たさなかった場合は処理2を実行するには、「If~Then~Else」の記述方法は以下のようになります。

IF 条件式 Then

処理1

Else

処理2

End If

「Else」は、日本語では「そのほかの、それ以外の、さもなくば」という意味があります。

条件式が満たされない場合は・・・さもなくば、処理2を実行します・・・という意味になります。

条件式が満たされた場合(真の場合) ⇒ 処理1を実行する

条件式が満たされなかった場合(偽の場合) ⇒ 処理2を実行する

ピンとこないかもしれませんので、次は、実際に If~Then~Else の動作例を見てみましょう。百聞は一見に如かずです(笑)

If~Then~Elseの動作例

佐藤太郎の得点が80点になっています。

ここで、得点が「100点より大きい」を満たせば文字色を赤に、満たさなければ文字色を青にするというVBAコードです。

上の表のとおり、得点は80点で、条件式「100より大きい」を満たさないため、文字色は青色になるはずです。

VBAコードは以下のとおりになります。

Sub 例()
    
    Dim Tokuten As Long
          
    Tokuten = Cells(3, 3).Value   '変数 Tokuten にセルC3の値を格納
    
    If Tokuten > 100 Then                'もし、Tokutenが100より大きければ、、、
        Cells(3, 3).Font.ColorIndex = 3  'セルC3の文字色を赤色に設定する
    Else                                 'Toketenが「100より大きい」を満たさなければ、、、
        Cells(3, 3).Font.ColorIndex = 5  'セルC3の文字色を青色に設定する
    End If                               'If~Then文の終わり
    
End Sub

実行してみると、文字色は青色になるはずです。

もちろん、得点が150以上ならば文字色は赤色になりますので、ためしてみてくださいね。

Elseのまとめ

If~Then~Elseステートメントを使って、条件式を満たした場合と満たさなかった場合について異なる処理を実行するというをお伝えしました。

If~Then~Elseステートメントは、VBAコードはもとよりプログラムの世界では必須項目になっています。

というか、If~Then~Elseステートメントがあるからこそのプログラムです。

最初はややこしく感じますが、使っているうちにすぐに慣れるはずです。

習うより慣れろです!!

 




VBAの基礎・入門
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

  1. […] 参考: Excel VBA入門 その21:条件を満たした場合と複数の条件によって処理を分岐… […]

タイトルとURLをコピーしました