カテゴリ: VB.NET 更新日: 2026/01/31

VB.NETのIf-ElseIf-Else構文を徹底解説!初心者でもわかる複数条件の使い方

VB.NETのIf-ElseIf-Else構文で複数条件を扱う方法
VB.NETのIf-ElseIf-Else構文で複数条件を扱う方法

先生と生徒の会話形式で理解しよう

生徒

「先生、VB.NETで条件がいくつもある場合ってどうすればいいですか?」

先生

「とても良い質問ですね。そんなときはIf-ElseIf-Else構文を使うと便利です。」

生徒

「If文だけじゃ足りないんですか?」

先生

「そうなんです。条件が一つだけならIf文でいいですが、条件が複数になるとElseIfElseを組み合わせて使います。今日はそれをわかりやすく学びましょう。」

1. If-ElseIf-Else構文とは?

1. If-ElseIf-Else構文とは?
1. If-ElseIf-Else構文とは?

VB.NETのIf-ElseIf-Else構文は、条件を複数チェックして、それぞれに応じた処理を実行するための分岐構造です。たとえば、テストの点数によって「合格」「再試験」「不合格」といったメッセージを出したいときなどに使われます。

プログラムでは、最初のIf条件が真(True)かどうかを判断します。真であればそのブロック内の処理を実行し、それ以降の条件はスキップされます。偽(False)の場合は次のElseIfに進みます。すべての条件が偽の場合、最後のElse部分が実行されます。

2. 基本的なIf-ElseIf-Else構文の書き方

2. 基本的なIf-ElseIf-Else構文の書き方
2. 基本的なIf-ElseIf-Else構文の書き方

まずは構文の形を見てみましょう。


If 条件1 Then
    ' 条件1がTrueのときの処理
ElseIf 条件2 Then
    ' 条件2がTrueのときの処理
Else
    ' どの条件にも当てはまらないときの処理
End If

とてもシンプルですよね。では、実際に使ってみましょう。

3. 具体的な例:テストの点数で判定する

3. 具体的な例:テストの点数で判定する
3. 具体的な例:テストの点数で判定する

例えば、生徒のテスト点数によって判定を出すプログラムを作りたいとします。点数が80点以上なら「合格」、50点以上80点未満なら「再試験」、それ以下なら「不合格」と表示するようにしましょう。


Dim score As Integer = 72

If score >= 80 Then
    Console.WriteLine("合格です!")
ElseIf score >= 50 Then
    Console.WriteLine("再試験です。もう少し頑張りましょう。")
Else
    Console.WriteLine("不合格です。次はきっと大丈夫!")
End If

再試験です。もう少し頑張りましょう。

このように、上から順番に条件を評価していき、最初にTrueになった部分だけが実行されます。残りの条件はスキップされる点が重要です。

4. ElseIfを使うときの注意点

4. ElseIfを使うときの注意点
4. ElseIfを使うときの注意点

ElseIfをいくつも書くことができますが、処理の順番には注意が必要です。上の条件が広すぎると、下の条件が無視されてしまうことがあります。

たとえば次のように書くと、100点の人でも「再試験」と表示されてしまうミスが起こるかもしれません。


Dim score As Integer = 100

If score >= 50 Then
    Console.WriteLine("再試験です。")
ElseIf score >= 80 Then
    Console.WriteLine("合格です!")
End If

再試験です。

これは「score >= 50」の条件が最初に真(True)になったため、後のElseIfには進まなかったのです。条件は「より厳しいものから順に」書くのがポイントです。

5. Elseを使ってすべての条件に当てはまらない場合をカバー

5. Elseを使ってすべての条件に当てはまらない場合をカバー
5. Elseを使ってすべての条件に当てはまらない場合をカバー

もし、どのIfElseIfにも当てはまらない場合に備えて、Elseを最後に書いておくと安心です。これがあると、予想外のデータが来た場合でもプログラムが止まらず、メッセージを表示できます。


Dim age As Integer = 150

If age < 13 Then
    Console.WriteLine("子どもです。")
ElseIf age < 20 Then
    Console.WriteLine("未成年です。")
ElseIf age <= 120 Then
    Console.WriteLine("大人です。")
Else
    Console.WriteLine("入力された年齢が正しくありません。")
End If

入力された年齢が正しくありません。

このようにElseを使うと、どの条件にも当てはまらないデータにも対応でき、より安全なプログラムになります。

6. If-ElseIf-Else構文の使いどころ

6. If-ElseIf-Else構文の使いどころ
6. If-ElseIf-Else構文の使いどころ

この構文は、たとえば以下のような場面でよく使われます。

  • ユーザーの入力値に応じて処理を変えたいとき
  • ゲームの得点やレベルでメッセージを変えるとき
  • 天気や時間によって動作を分けるとき

もし「朝ならおはよう」「昼ならこんにちは」「夜ならこんばんは」といったメッセージを出したいときも、If-ElseIf-Elseを使えば簡単に実現できます。


Dim hour As Integer = 19

If hour < 12 Then
    Console.WriteLine("おはようございます!")
ElseIf hour < 18 Then
    Console.WriteLine("こんにちは!")
Else
    Console.WriteLine("こんばんは!")
End If

こんばんは!

このように、If-ElseIf-Elseを使えば、プログラムに「判断力」を持たせることができます。

7. 条件分岐のコツとポイント

7. 条件分岐のコツとポイント
7. 条件分岐のコツとポイント

複数条件を扱うときに覚えておくと便利なポイントを紹介します。

  • 条件は上から順番に評価される
  • 最初にTrueになった部分で処理が止まる
  • 条件は範囲が狭いものを上に書く
  • どの条件にも当てはまらないときのためにElseを使う

このルールを意識することで、バグの少ない読みやすいプログラムを書けるようになります。

まとめ

まとめ
まとめ

VB.NETにおける条件分岐の基本であり、最も重要な要素の一つである「If-ElseIf-Else構文」について解説してきました。プログラミングの学習を進める中で、一つの道筋だけでなく、状況に応じて処理を分ける「判断能力」をコードに持たせることは、アプリケーション開発の第一歩と言えます。

今回の内容をおさらいすると、まず基本となるIfで最初の条件を提示し、それに当てはまらなかった場合の予備条件としてElseIfを重ねていきます。そして、どの条件にも合致しなかった際の「受け皿」としてElseを記述するというのが王道のパターンです。この流れをしっかりとマスターすることで、複雑な業務ロジックや、ユーザーの入力ミスに対するエラーハンドリングなど、実戦で役立つスキルが身につきます。

実践的な活用例:複雑な数値判定

記事の中では点数や年齢を例に挙げましたが、実際の開発現場では、もっと細かい数値のセグメント分けが必要になるシーンが多々あります。例えば、在庫管理システムにおいて、商品の在庫数に応じて表示する警告レベルを分けるといったケースです。以下のコードを見て、これまでの復習をしてみましょう。


Dim stockCount As Integer = 5

If stockCount = 0 Then
    Console.WriteLine("【在庫切れ】至急発注してください。")
ElseIf stockCount <= 10 Then
    Console.WriteLine("【在庫僅少】注文を検討してください。残数:" & stockCount)
ElseIf stockCount <= 50 Then
    Console.WriteLine("【在庫あり】通常販売中です。")
Else
    Console.WriteLine("【在庫豊富】余裕があります。")
End If

このように記述することで、単に「あるかないか」だけでなく、具体的な数量に基づいた柔軟な対応が可能になります。Console.WriteLineの部分を、実際のシステムでは「メール通知を送る」や「画面の文字の色を赤くする」といった具体的なアクションに置き換えるだけで、立派なビジネスプログラムへと進化します。

コードを綺麗に保つための秘訣

条件分岐を書く際には、「可読性」と「メンテナンス性」を常に意識することが大切です。ElseIfが10個も20個も並んでしまうような場合は、他の構文(例えばSelect Caseなど)を検討するタイミングかもしれません。しかし、数個程度の分岐であれば、今回学んだIf-ElseIf-Elseが最も直感的で分かりやすい手段です。

また、初心者が陥りがちなミスとして、条件の重複があります。If score > 80 と書いた後に ElseIf score > 70 と書く場合、80より大きい値はすでに最初のIfでキャッチされているため、二番目のElseIfには「71から80まで」の数値しか入ってきません。この「条件のフィルタリング」の仕組みを視覚的にイメージできるようになると、プログラミング脳が一段階レベルアップします。

最後に:トライ&エラーを楽しもう

VB.NETは、構文が自然言語(英語)に近く、非常に読みやすい言語です。今回学んだ構文も、「もし(If)〜なら、あるいは(ElseIf)〜なら、そうでなければ(Else)〜」と、日本語の文章を組み立てるような感覚で書くことができます。まずは自分で色々な数値を変数に代入してみて、期待通りの出力結果になるか何度も試してみてください。その小さな積み重ねが、将来的に大きなシステムを構築するための揺るぎない基礎となります。

条件分岐が自由自在に操れるようになれば、次は「繰り返し処理(Loop)」などと組み合わせて、さらに高度なプログラムに挑戦していきましょう!

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!If-ElseIf-Elseの流れがやっと掴めてきました。条件を書く順番が大事だっていうのが、一番の驚きでした。」

先生

「それは良かったです!特に『厳しい条件から先に書く』というルールを忘れると、意図しない動き(バグ)の原因になりますからね。実際にコードを書いてみて、何か気になったところはありましたか?」

生徒

「はい、例えばElseIfって何個まで繋げていいんですか?無限に書けちゃう気がして……。」

先生

「技術的にはかなりの数を繋げられますが、あまりに多すぎると後から読み返した時に混乱してしまいます。目安としては3つから5つくらいまでですね。それ以上になるなら、処理を分割するか、別の書き方を検討するのがプロのコツですよ。」

生徒

「なるほど、読みやすさも大事なんですね。あと、最後のElseは必ず書かないといけないんですか?」

先生

「必須ではありません。でも、想定外のデータが入ってきた時に『何もしない』よりは、『エラーです』とか『該当なし』と表示させるためにElseを置いておく方が、親切で安全なプログラムと言えますね。」

生徒

「確かに、何も起きないと壊れたのかな?って不安になりますもんね。条件の優先順位と、最後の受け皿としてのElse、しっかり意識して使ってみます!」

先生

「その意気です!では、試しに今の知識を使って『おみくじプログラム』を作ってみるのはどうでしょう?乱数で数字を出して、その数字によって大吉や中吉を表示分けるんです。」

生徒

「あ、それ楽しそう!早速やってみます!もし大吉の範囲を狭くしたいなら、一番最初のIfに書けばいいんですよね?」

先生

「正解です!飲み込みが早いですね。ぜひチャレンジしてみてください。」

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETで文字列をバイト配列に変換!Encodingの基本を完全解説
New2
ASP.NET
ASP.NET Coreで学ぶAPIルーティングの仕組み完全ガイド!初心者でもわかるURLの流れ
New3
VB.NET
VB.NETで文字列の空白・改行を操る!TrimやvbCrLfの使い方を徹底解説
New4
ASP.NET
ASP.NET Web APIとMVCの違いを完全解説!初心者でもわかるWebアプリとAPIの基本
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのJoinメソッドを徹底解説!バラバラの文字列を一つに結合する方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで正規表現をマスター!初心者でもわかる文字列検索・抽出の基本
No.6
Java&Spring記事人気No6
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.7
Java&Spring記事人気No7
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NETでEF Coreを使ったデータベース接続を完全ガイド!初心者でもわかるEntity Framework Core入門