4、VBAによるマクロの作成(基礎編)

4−6、高度な分岐


複数の分岐

前ページで行った分岐は、「条件にあう場合は処理1、あわない場合は処理2という形で、条件にあうかあわないかで2通りに処理が分岐されるものでした。
分岐命令はこの2通りの分岐だけでなく、条件をさらに設定して何通りにも分岐させることもできます
例えば、「条件1にあう場合は処理1、条件2にあう場合は処理2、条件3にあう場合は処理3、すべてにあわない場合は処理4」といった具合です。この例は、条件は3つ、分岐する処理は4つになっていますが、いくつに設定することもできます。

例6)

※「Example1」〜「Example5」の続きです。


「山田」君の点数を評価します。
点数が0〜50点の場合は赤、51〜80点の場合は黄色、
81〜100点の場合は青でセルの中を塗りつぶします。

Sub Example6()
  Worksheets("Sheet1").Select
  Hyouka1 = Range("B2").Value
  
If Hyouka1 <= 50 Then
    Range("B2").Interior.ColorIndex = 3
  
ElseIf Hyouka1 <= 80 Then
    Range("B2").Interior.ColorIndex = 6
  
Else
    
Range("B2").Interior.ColorIndex = 5
  
End If
  
Hyouka2 = Range("C2").Value
  
If Hyouka2 <= 50 Then
    Range("C2").Interior.ColorIndex = 3
  
ElseIf Hyouka2 <= 80 Then
    Range("C2").Interior.ColorIndex = 6
  
Else
    
Range("C2").Interior.ColorIndex = 5
  
End If
  
Hyouka3 = Range("D2").Value
  
If Hyouka3 <= 50 Then
    Range("D2").Interior.ColorIndex = 3
  
ElseIf Hyouka3 <= 80 Then
    Range("D2").Interior.ColorIndex = 6
  
Else
    
Range("D2").Interior.ColorIndex = 5
  
End If
End Sub

記述後、「マクロの実行」から「Example6」を実行してください。

【このコードの解説】

Hyouka1 = Range("B2").Value

(ア)If Hyouka1 <= 50 Then
(イ)  Range("B2").Interior.ColorIndex = 3
(ウ)ElseIf Hyouka1 <= 80 Then
(エ)  Range("B2").Interior.ColorIndex = 6
(オ)Else
(カ)  Range("B2").Interior.ColorIndex = 5
(キ)End If

日本語でいうと・・・
(ア)もし Hyouka1が50以下 ならば
(イ)  セルB2の中を赤で染めなさい
(ウ)そうでなくもし Hyouka1が80以下 ならば
(エ)  セルB2の中を黄色で染めなさい
(オ)そうでなければ
(カ)  セルB2の中を青で染めなさい
(キ)分岐命令終了
※「Interior」とはセルの中のこと。
 赤、黄、青は各々カラー番号3、6、5で表わされる。

いずれの場合も、どの条件にあてはまるかによって、どれか一つの処理が行われるわけです。