Categories: VBA基礎

EXCEL VBA Select Caseの使い方(複数条件)

Select Caseの使い方(複数条件)

 

●はじめに
Select Caseは、複数条件にたいして条件を判断してくれます。If..Thenでも複数条件を判断する事ができますが、コードにした時に、見やすくなります。VBAコード(プログラム)を作成しているとき副条件処理が必要な時には、Select Caseを使うようにしましょう。それでは、Select Caseの利用方法を説明いたします。

 

●書式の説明(Select Caseの使い方)
 
Select Case (値)
              Case (条件1)
                       '条件1の処理'
              Case(条件2)
                       '条件1の処理'
              Case(条件3)
                       '条件3の処理'
              Case Else
                       'どの条件にもあてはまらない処理'
  End Select

 

●プログラム説明(Select Case の使い方を説明します。)※サンプル①
入力した値に対して該当する条件を実行します。
・算数の点数を入力して入力した点数に応じて90点以上は”天才”・70点以上は”秀才”・50点以上は”普通”・50点未満は、”がんばりましょう”と表示します。

 

Sub 複数条件()

Dim i as Integer
 i = InputBox("あなたの算数の点数を入力してください")
   Select Case i
    Case Is >= 90
       MsgBox "あなたは天才"
    Case Is >=70
       MsgBox "あなたは秀才"
    Case Is >= 50
       MsgBox "あなたは普通"
    Case Else
       MsgBox "がんばりましょう"
   End Select
 End Sub


●実行結果
実行後、「あなたの算数の点数を入力してください」と聞いてきますので、点数を入力します。入力した点数に応じてメッセージを返します。

 

●入力値 ※「あなたの算数の点数を入力してください」と聞いてきますので、ここでは「75」を入力します。(クリックして拡大)

 

●実行後 ※入力した値をSelect Caseで判定すると、入力値「75」なので、⇒”あなたは秀才”と表示します。 (クリックして拡大)

 

 

●プログラム説明(Select Case の使い方を説明します。)※サンプル②
入力した値に対して該当する条件を実行します。
・成績の点数を1~10までの範囲で入力してもらい、9・10は、素晴らしい成績、6・7・8は、まあまあの成績、1・2・3・4・5は、がんばりましょう!それ以外の点数を入れた場合は、1~10の範囲で入力してください。と表示する方法を説明します。

 

Sub 複数条件2()
Dim i as Integer
 i = InputBox("成績を1~10の点数で入力して下さい")
   Select Case  i
       Case 1 to 5
                  MsgBox "勉強がんばりましょう!"
     Case  6 to 8
                  MsgBox "まあまあの成績です"
     Case  9 to 10
           MsgBox "素晴らしい成績です" 
    Case Else
           MsgBox "1~10の範囲で入力して下さい"
   End Select
 End Sub


 

●実行結果
実行後、「成績を1~10の点数で入力して下さい」と聞いてきますので、点数を入力します。入力した点数に応じてメッセージを返します。

 

●入力値 ※「成績を1~10の点数で入力して下さい」と聞いてきますので、ここでは「7」を入力します。(クリックして拡大)

 

●実行後 ※入力した値をSelect Caseで判定すると、入力値「7」なので、⇒”まあまあの成績です”と表示します。 (クリックして拡大)

 

 

●プログラム説明(Select Case の使い方を説明します。)※サンプル③
●次のサンプルプログラムは、不規則な数字を設定して判定するSelect Caseを使ったプログラムになります。プログラム内容の説明ですが、【おみくじ判定プログラム】です。ランダムで数値を0~9まで生成して不規則に設定したおみぐじの結果を表示させます。

 

Sub 複数条件2()

Dim I As Integer
    
    I = Int(Rnd * 10) 'ランダムの数値を生成(0~9)
    
    MsgBox "あなたの引いたおみくじは?"
    
    Select Case I
      Case 7
            MsgBox "今日の結果は、大吉です!"
      Case 1, 3
            MsgBox "今日の結果は、中吉です!"
      Case 2, 4, 8
            MsgBox "今日の結果は、吉です!"
      Case 9
            MsgBox "今日の結果は、大凶です!"
      Case Else
            MsgBox "今日の結果は、凶です!"
    End Select
    
End Sub


 

●実行結果
実行後、ランダムで「1~9」までの数値を生成します。生成した数値結果により、引いた「おみくじ」としてメッセージが表示されます。

 

●実行直後 ※「あなたの引いたおみくじは?」と表示されます。(クリックして拡大)

 

●実行後 ※ランダムで生成した数値の結果により、「7」が生成されたので、「今日の結果は、大吉です!」と表示されました。(クリックして拡大)

 

最後まで、ご覧いただきまして誠に有難うございました。
Select Caseは、複数条件にとても向いている機能なので、サンプルプログラムを参照して色々試して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

AKIRA