Excel VBA

[ExcelVBA] If文以外の条件分岐[Select Caseステートメント]

2020年4月4日

 

本記事はエクセル2019で動作確認を行っています。

 

困ってます
ExcelVBAを使用してIf文以外で条件分岐をする方法はありますか?

 

このような疑問にお答えします。

 

条件分岐はIfステートメントが有名ですが、SelectCaseステートメントを使用しても条件分岐ができます。

まず、Ifステートメントとの違いをおさえておきましょう。

 

ポイント

Ifステートメントは条件ごとに比較する対象を変更することができる。

SelectCaseステートメントは、はじめに比較対象を指定するので、途中で変更することができない。

 

よって、ひとつの比較対象に対して複数の条件を指定した場合には、SelectCaseステートメントを使用することをおすすめします。

 

(式)

Select Case 比較条件

   Case 条件式A

  処理内容A

 Case 条件式B

  処理内容B

 ・

 ・

 Case Else

End Select

 

(例)

SelectCaseステートメントを使用して、Cの合否を判断させます。

問題

 

Sub 条件分岐()

    Select Case Range("E6").Value
    
        Case Is >= 240
            
            Range("F6").Value = "素晴らしい!"
        
        Case Is >= 210
            
            Range("F6").Value = "もう少し頑張ろう。"
        
        Case Else
        
            Range("F6").Value = "もっと頑張ろう。"
        
        End Select
        
End Sub

 

実行結果

 

解説

Cの合計を比較条件として考えます。

まず合計の値が240以上か比較します。

実際は218が合計点になるので、次の条件式に移動します。

次の条件式が210位以上になるので、一致します。

 

実際にVBAを記述して「F8」を押しながらステップインしてみましょう。

1つずつの動きを見ていくことが習得の近道です。

Ifステートメントではどのように記述するか以下の記事をご参考ください。

目次「複数の条件に応じて処理を行う」でSelectCaseステートメントと同じ内容を取り扱っています。

>>Ifステートメントはこちら

 

今回はSelectCaseステートメントについてご紹介しました。

最後まで目を通していただきありがとうございます。

-Excel VBA
-

Copyright© Ronpeee blog , 2023 All Rights Reserved.