Excel VBA | If文の入れ子

VBA
スポンサーリンク

では、先ほどの 入れ子If練習問題10問 を、条件フロー図(可視化) にして、初心者でも分かりやすくまとめます。
ここでは ASCII図 で簡単に示します。


例題1:点数判定(50点以上・70点未満)

     ┌───────────┐
     │ B2の点数           │
     └─────┬─────┘
                │
     ┌─────▼─────┐
     │ score >=50?       │
     └─────┬─────┘
        Yes    │ No
         │     │
┌────▼─┐ │
│ msg="合格"│ │
└────┬─┘ │
         │
┌────▼────┐
│ score<70?      │
└────┬────┘
      Yes│No
        │ │
┌───▼────┐
│ msg&="追加    │
│ レポート"     │
└────────┘

例題2:年齢判定(成人・働き盛り・高齢者)

       ┌──────────┐
       │ B2の年齢         │
       └─────┬────┘
                 │
       ┌─────▼─────┐
       │ age >= 20?        │
       └─────┬─────┘
           Yes    │ No
           │     │
   ┌───▼──┐ │
   │ 成人      │ │
   └───┬──┘ │
          │
 ┌────▼─────┐
 │ age < 65?        │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 働き盛り         │
 │ 高齢者           │
 └──────────┘

例題3:数値判定(0以上・100未満)

     ┌───────────┐
     │ B2の数値           │
     └─────┬─────┘
                │
     ┌─────▼─────┐
     │ num >= 0?         │
     └─────┬─────┘
         Yes    │ No
         │     │
 ┌───▼──┐ │
 │ 正の数    │ │
 └───┬──┘ │
        │
 ┌───▼────┐
 │ num<100?     │
 └───┬────┘
     Yes│No
       │ │
 ┌──▼────┐
 │ 小さい数    │
 │ 大きい数    │
 └───────┘

例題4:曜日判定(平日・休日・水曜日)

     ┌───────────┐
     │ B2の曜日           │
     └─────┬─────┘
               │
 ┌───────▼─────────┐
 │ 土日?                        │
 └─────┬───────────┘
        Yes │ No
            │
 ┌─────▼─────┐
 │ 平日               │
 └─────┬─────┘
            │
 ┌─────▼─────┐
 │ 水曜?              │
 └─────┬─────┘
       Yes │ No
           │
 ┌─────▼─────┐
 │ 水曜は会議          │
 └───────────┘

わかりました。では、練習問題5〜10の入れ子Ifフローチャート(ASCII図) を順番にまとめます。


例題5:温度判定(氷は溶ける・暑い・凍る)

       ┌───────────┐
       │ B2の温度           │
       └─────┬─────┘
                  │
       ┌─────▼─────┐
       │ temp >=0?         │
       └─────┬─────┘
           Yes    │ No
           │     │
 ┌────▼──┐ │
 │ 氷は溶ける│ │
 └────┬──┘ │
          │
 ┌────▼─────┐
 │ temp>=30?        │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 暑い             │
 └──────────┘
 │
 ┌─────▼─────┐
 │ 凍る               │ (temp<0)
 └───────────┘

例題6:点数評価(秀・良・可・不可)

        ┌───────────┐
        │ B2の点数           │
        └─────┬─────┘
                  │
        ┌─────▼─────┐
        │ score>=90?        │
        └─────┬─────┘
           Yes     │ No
           │      │
 ┌─────▼──────┐
 │ 秀                  │
 └────┬───────┘
          │
 ┌────▼─────┐
 │ score>=70?       │
 └────┬─────┘
      Yes │ No
          │
 ┌────▼─────┐
 │ score>=50?       │
 └────┬─────┘
      Yes │ No
          │
 ┌────▼─────┐
 │ 可               │
 │ 不可             │
 └──────────┘

例題7:偶数・奇数判定(大きい偶数)

       ┌───────────┐
       │ B2の数値           │
       └─────┬─────┘
                  │
       ┌─────▼─────┐
       │ num Mod2=0?       │
       └─────┬─────┘
          Yes     │ No
           │      │
 ┌────▼───┐ │
 │ 偶数          │ │
 └────┬───┘ │
          │
 ┌────▼─────┐
 │ num>=100?        │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 大きい偶数        │
 └──────────┘
 │
 ┌─────▼─────┐
 │ 奇数               │
 └───────────┘

例題8:大きい・中くらい・小さい + 偶数/奇数

       ┌───────────┐
       │ B2の数値           │
       └─────┬─────┘
                 │
       ┌─────▼─────┐
       │ num>=100?          │
       └─────┬─────┘
          Yes     │ No
          │      │
 ┌────▼──┐ │
 │ 大きい      │ │
 └────┬──┘ │
          │
 ┌────▼─────┐
 │ num>=50?         │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 中くらい         │
 │ 小さい           │
 └──────────┘
         │
 ┌────▼─────┐
 │ 偶数?            │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 偶数             │
 │ 奇数             │
 └──────────┘

例題9:色判定(赤・青・黄・不明)

        ┌───────────┐
        │ B2の色             │
        └─────┬─────┘
                   │
       ┌──────▼────┐
       │ 赤?                │
       └─────┬─────┘
          Yes     │ No
          │      │
 ┌────▼──┐ │
 │ STOP       │ │
 └────┬──┘ │
          │
 ┌────▼─────┐
 │ 青?              │
 └────┬─────┘
      Yes │ No
          │
 ┌────▼─────┐
 │ GO               │
 └────┬─────┘
          │
 ┌────▼─────┐
 │ 黄?              │
 └────┬─────┘
      Yes │ No
          │
 ┌────▼─────┐
 │ 注意             │
 │ 不明             │
 └──────────┘

例題10:点数 + 偶数/奇数

        ┌───────────┐
        │ B2の点数           │
        └─────┬─────┘
                   │
       ┌──────▼────┐
       │ score>=80?        │
       └─────┬─────┘
          Yes     │ No
           │      │
 ┌────▼──┐ │
 │ 優秀        │ │
 └────┬──┘ │
          │
 ┌────▼─────┐
 │ score>=60?       │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 普通             │
 │ 努力が必要        │
 └────┬─────┘
          │
 ┌────▼─────┐
 │ 偶数?            │
 └────┬─────┘
      Yes │ No
          │ │
 ┌────▼─────┐
 │ 点数は偶数        │
 │ 点数は奇数        │
 └──────────┘

💡 まとめポイント

  • 条件は上から順に確認 → Yes / Noで枝分かれ
  • 入れ子Ifは「条件の中に条件がある」場合に使う
  • ASCII図やフローチャートにすると、条件の流れが一目で理解できる
  • フローを描くことで、初心者でも迷わずコードが書ける
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました