★If...Then...Else 入れ子 | |||
◎ 条件式1 一致 → 条件式2 一致 → Aの処理 条件式1 一致 → 条件式2 不一致 → Bの処理 条件式1 不一致 → 条件式3 一致 → Cの処理 条件式1 不一致 → 条件式3 不一致 → Dの処理 |
|||
If 条件式 1 Then If 条件式 2 Then ・・・条件1に一致して、条件2にも一致 Aの処理 Else ・・・条件1に一致して、条件2には不一致 Bの処理 End If Else If 条件式 3 Then ・・・条件1に不一致で、条件3とは一致 Cの処理 Else ・・・条件1に不一致で、条件3とも不一致 Dの処理 End If End If |
|||
入れ子の例ってどんなのがあるのか、こんな感じでしょうか? 例) シート上のセルA1とB1が空白かどうかをチェックしてそれぞれの状態に合わせて処理を行う。 というものです。 とりあえずVBEでユーザーフォームをひとつ作って、それにコマンドボタンをひとつ貼り付けます。 あとはコードの記述して終わりです。 コードは下に書きましたので、参考にして下さい。 |
|||
セルA1とB1が共に空白の場合 A1に1を入力 セルA1が空白で、B1は空白でない場合 A1もB1も空白に セルA1もB1も空白でない場合 A1は空白、B1は1を入力 セルA1は空白でなく、B1が空白の場合 A1もB1も1を入力 |
|||
Private Sub CommandButton1_Click() If Range("A1") = "" Then If Range("B1") = "" Then MsgBox "処理1" Range("A1") = 1 Range("B1") = "" Else MsgBox "処理2" Range("A1") = "" Range("B1") = "" End If Else If Range("B1") = 1 Then MsgBox "処理3" Range("A1") = "" ' Range("B1") = 1 Else MsgBox "処理4" Range("A1") = 1 Range("B1") = 1 End If End If End Sub |
|||
入れ子はIf構文の中に、またIf構文、そしてまたIf構文といくつでも入れ子をしていくことが出来ます。入れ子が複数になるとどのIfに対してのEnd Ifか分からなくなったりしますので、Tabキーを使って階層が分かるようにしたり工夫も必要になります。 コード記述は、後からでも理解できるように書くことがポイントです。 コメントを入れたりしながら、工夫して書いてきましょうね。 |
|||
|