アットウィキロゴ

If ElseIf 文 | ExcelVBA基礎

IF Elseif 文であれば、条件をいくつも書き連ねて、処理を分岐できます。

セルA1の値が”アメリカ”なら”ワシントン”、”日本”なら”東京”、”韓国”なら”ソウル”とするには、こうします。

Private Sub CommandButton1_Click()
If Range("A1").Value = "アメリカ" Then
Range("B1").Value = "ワシントン"
ElseIf Range("A1").Value = "日本" Then
Range("B1").Value = "東京"
ElseIf Range("A1").Value = "韓国" Then
Range("B1").Value = "ソウル"
End If
End Sub

一行ずつ解説したいと思います。

が、その前に、読みにくいのでインデントをしましょう。

Private Sub CommandButton1_Click()
If Range("A1").Value = "アメリカ" Then
Range("B1").Value = "ワシントン"
ElseIf Range("A1").Value = "日本" Then
Range("B1").Value = "東京"
ElseIf Range("A1").Value = "韓国" Then
Range("B1").Value = "ソウル"
End If
End Sub

だいぶ読みやすくなりました。

Private Sub CommandButton1_Click()

CommandButton1という名前のボタンをクリックしたときに実行される処理、という意味です。

If Range("A1").Value = "アメリカ" Then

もしセルA1の値が”アメリカ”なら、次の行の処理を実行する、という意味です。

Range("B1").Value = "ワシントン"

セルB1の値に”ワシントン”と入力します。

ElseIf Range("A1").Value = "日本" Then

そうじゃなければ(最初の条件が合わなければ)、次の行の処理を実行する、という意味です。

Range("B1").Value = "東京"

セルB1の値に”東京”と入力します。

ElseIf Range("A1").Value = "韓国" Then

そうじゃなければ(一番目、二番目の条件が合わなければ)、次の行の処理を実行する、という意味です。

Range("B1").Value = "ソウル"

セルB1の値に”ソウル”と入力します。

End If

このIf Elseif 文の文末です。IFを使う文は、If文も、IF Else文も、If Elseif文も、すべて「End If」で終わります。

 

分岐する選択肢をもっと増やしたければ

ElseIf Range("A1").Value = "国名" Then
Range("B1").Value = "首都名"

をどんどん入れて、最後に「End If」を付ければいいです。

 

IF Elseif 文は、日本語に直せば「この条件ならこうしろ、そうじゃなければこう、そうじゃなければこう、そうじゃなければこう、・・・」ということです。

さて、しかし、すべての国の首都名をプログラムに書くのはたいへんです。また、首都名ならあらかじめ決まっていますが、例えば、ユーザの入力に応じて処理を分岐したい、などというときは、必ずしもユーザの入力をすべて予期できるわけではありません。

そうすると、あらかじめこちらが用意した選択肢以外の場合の処理、つまり、列挙された条件すべてに合致しなかった場合のデフォルトの処理が書ければ便利です。

そのときはこうします。

Private Sub CommandButton1_Click()
If Range("A1").Value = "アメリカ" Then
Range("B1").Value = "ワシントン"
ElseIf Range("A1").Value = "日本" Then
Range("B1").Value = "東京"
ElseIf Range("A1").Value = "韓国" Then
Range("B1").Value = "ソウル"
Else
Range("B1").Value = "わかりません"
End If
End Sub

If ElseIf 文を書いたとき、エクセルは上から順に条件をみていきます。

合致したときに、その次の行の処理を実行し、それが終わったら、当然ですが、次の条件は見ずに、If Elseif文 を終了します。

ElseIf のうしろには、条件を書きます。

Else のうしろには、条件は書きません。無条件に次の行の処理が実行されます。

 

さて、IF Elseif 文の書式はこうなります。
If 条件1 Then
    実行する処理1
ElseIf 条件2 Then
    実行する処理2
ElseIf 条件3 Then
    実行する処理3
Else
    デフォルトの処理
End If

これを覚えれば、条件分岐にはすべて対応できます。

が、ひとつだけ弱点があります。

単純ですが、”読みにくい”のです。

そこで、If ElseIf 文の代わりに、Select Case 文がよく使用されます。


最終更新:2010年09月02日 21:17
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。