では、さらにステップアップとして 「性別・年齢・職業を組み合わせた3段階ネスト」 の例を作ります。プログラミング初心者でも理解できるよう、丁寧に解説付きで示します。
1. 条件設定
- セル
A1:性別 (“男” または “女”) - セル
B1:年齢(整数) - セル
C1:職業 (“学生”、”会社員”、”自営業”) - 条件:
- 性別で大きく分ける
- 男 → 内側で年齢判定
- 女 → 内側で年齢判定
- 年齢でさらに分類
- 20〜30 → 若い
- 31〜50 → 中年
- 51以上 → シニア
- 職業で最終メッセージ
- 学生 → 「学生です」
- 会社員 → 「会社員です」
- 自営業 → 「自営業です」
- その他 → 「不明な職業です」
- 性別で大きく分ける
2. 解答例
Sub 性別年齢職業判定()
Dim gender As String
Dim age As Integer
Dim job As String
gender = Range("A1").Value
age = Range("B1").Value
job = Range("C1").Value
Select Case gender
Case "男"
' 男性の場合
Select Case age
Case 20 To 30
' 若い男性
Select Case job
Case "学生"
MsgBox "若い男性の学生です"
Case "会社員"
MsgBox "若い男性の会社員です"
Case "自営業"
MsgBox "若い男性の自営業です"
Case Else
MsgBox "若い男性、職業不明です"
End Select
Case 31 To 50
' 中年男性
Select Case job
Case "学生"
MsgBox "中年男性の学生です"
Case "会社員"
MsgBox "中年男性の会社員です"
Case "自営業"
MsgBox "中年男性の自営業です"
Case Else
MsgBox "中年男性、職業不明です"
End Select
Case Is >= 51
' シニア男性
Select Case job
Case "学生"
MsgBox "シニア男性の学生です"
Case "会社員"
MsgBox "シニア男性の会社員です"
Case "自営業"
MsgBox "シニア男性の自営業です"
Case Else
MsgBox "シニア男性、職業不明です"
End Select
Case Else
MsgBox "男性、年齢不明です"
End Select
Case "女"
' 女性の場合
Select Case age
Case 20 To 30
' 若い女性
Select Case job
Case "学生"
MsgBox "若い女性の学生です"
Case "会社員"
MsgBox "若い女性の会社員です"
Case "自営業"
MsgBox "若い女性の自営業です"
Case Else
MsgBox "若い女性、職業不明です"
End Select
Case 31 To 50
' 中年女性
Select Case job
Case "学生"
MsgBox "中年女性の学生です"
Case "会社員"
MsgBox "中年女性の会社員です"
Case "自営業"
MsgBox "中年女性の自営業です"
Case Else
MsgBox "中年女性、職業不明です"
End Select
Case Is >= 51
' シニア女性
Select Case job
Case "学生"
MsgBox "シニア女性の学生です"
Case "会社員"
MsgBox "シニア女性の会社員です"
Case "自営業"
MsgBox "シニア女性の自営業です"
Case Else
MsgBox "シニア女性、職業不明です"
End Select
Case Else
MsgBox "女性、年齢不明です"
End Select
Case Else
MsgBox "性別不明です"
End Select
End Sub
Java3. 解説
- 3段階のネスト構造
- 外側:性別 → 男 or 女 or 不明
- 中間:年齢 → 若い・中年・シニア
- 内側:職業 → 学生・会社員・自営業・不明
- ポイント
- 条件が複雑でも、ネストすることで整理して書ける
Case Elseを必ず書くことで、予期しない値に対応できる- メッセージを
MsgBoxにすることで、動作確認が簡単
- 初心者向けのコツ
- ネストが深くなる場合は、まず紙に条件の表を作って整理してから書くとわかりやすい
- 内側の
Select Caseは、外側の条件を満たした場合にのみ実行される
💡 さらに応用すると、
- 「職業が学生かつ20歳未満なら特別メッセージ」
- 「年齢が50以上かつ会社員なら定年関連メッセージ」
のように 複雑な条件を追加しても、ネストを使えば整理して書けます。
