以下はElseIfブロックを使用する例題です。必要な数だけ複数書くことができます。

[リスト6]ReiIf3(If文例題.xlsm)

Sub ReiIf3()
    a = Cells(1, 1)
    If a = 10 Then
        MsgBox ("値は10です")
    ElseIf a = 20 Then
        MsgBox ("値は20です")
    Else
        MsgBox ("値は10と20以外です")
   End If
End Sub

運賃表示の例題

If文を使った例題を考えてみましょう。バスや電車の運賃表から運賃の計算を行います。乗ったバス停から3停車場までは基本料金100円とし、その先は一つ停車場がくるたびに+10円されるものと仮定します。乗車停車場Noと降車停車場No、大人か子供かを設定してボタンを押すと、運賃を表示するマクロです。

図4:運賃実行結果表示画面

運賃表示のマクロのリストです。

[リスト7]Untin(If文例題.xlsm)

Sub Untin()
   a = Cells(12, 2) '乗車No            '(1)
   b = Cells(13, 2) '降車No
   c = Cells(14, 2) '大人:0  子供:1
   Ans = 0                             '(2)

   d = b - a    '停車場数
   If d <= 3 Then '3停車場以内         '(3)
       Ans = 100
   Else
       Ans = 100 + (d - 3) * 10
   End If
   '大人か子供か
   If c = 1 Then '子供 子供指定以外はすべて大人
       Ans = Ans / 2                   '(4)
   End If

   Cells(16, 2) = Ans                  '(5)

End Sub

(1)以降a、b、cにそれぞれ乗車No、降車No、大人か子供のデータを入れています。
(2)で運賃を入れる変数Ansを初期化しています。
(3)は3停車場までは100円のままなので、If文を使って分岐させています。3停車場から1停車場毎+10円なので、基本運賃100円に停車場数dから3を引いた数値に10を掛け算した値を足しています。ここで運賃が出ました。
(4)で大人か子供かを判断します。子供は半額にします。
(5)で運賃を表示します。

実際にプロブラムを入力して動かしてみると、思わぬエラーで引っかかったり、考えてもみなかったことを見つけたりと面白い発見があると思います。ぜひ入力して試してみてください。