複数のIF文を使うことで、さらに「条件」と「処理」を設けることができるようになります。
なので、より詳細な判定や処理ができるようになります。
しかし、ネストが深くなればなるほど理解に苦しむコードになってしまうので、使いすぎず、避けるに越したことはないテクニックだということも覚えておきましょう。
ちなみにIF文がイマイチの方は『IF文の使い方』から目を通してみてください。
では、さっそくIF文のネストについて解説していきます。
IF文のネストの記述方法
ここでは「IF文にIF文をネストする書式」「ざっくりとした参考コード」の解説をします。
IF文のネストの書式
まずはIF文の中にIF文をネストさせる時の書式を説明します。
例えば、IF文のTrue処理の範囲に2つ目のIF文をネストする書式は下の通りです。
上のようにIF文をIF文でネストすると1つ目のIF文の処理内でさらに条件と処理を設けることができるようになります。
IF文のネストの参考コード
次に簡単な複数(2つ)のIF文を使ったコードを実行してみます。
下は1つ目のIF文の条件がFalseだった場合の処理範囲にIF文をネストさせたコードです。
そして、下ではFOR文の中に2つのIF文をネストさせています。
コレにより、全てのIF文の処理を満遍なく通るようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub sample1() Dim i As Integer For i = 1 To 3 If i = 3 Then ' ---1つ目のIF文(開始) Debug.Print "変数iは「3」です" Else If i = 2 Then ' ---2つ目のIF文(開始) Debug.Print "変数iは「2」です" Else Debug.Print "変数iは「1」です" End If '--- 2つ目のIF文(終了) End If '--- 1つ目のIF文(終了) Next i End Sub |
上のコードでは変数iの値によって処理内容を分岐するという内容になっています。
そして、その変数iは1、2、3と増えていくという流れになっています。
そのIF文の処理内容は下の結果のように変数iに合わせて”変数iは「〇」です”とイミディエイトウィンドウに表示されるようにしています。
IF文のネストの実践コード
では、IF文のネストを使って、実際のエクセルシート内のセルを操作してみます。
例えば、下の表に対して試してみます。
上の表では一人ひとりに点数を設定しています。
そして、下は「点数が80以上の場合は”A”、80未満で60以上なら”B”、それ以外(60未満)なら”C”を列Eに表示する」というコードになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub sample2() Dim i As Integer For i = 3 To 7 If Cells(i, 4) >= 80 Then Cells(i, 5) = "A" Else If Cells(i, 4) >= 60 Then Cells(i, 5) = "B" Else Cells(i, 5) = "C" End If End If Next i End Sub |
そして、上のコードを実行すると下のような結果になります。
このようにIF文の中にIF文を1つネストさせるだけでも、条件と処理が1つずつ増やすことができます。
それによって、さらに詳細な処理を行うことができるようになります。
注意基本的にIF文はもちろん、FOR文などでもネスト数を増やしていくことでコードの可読性が落ちます。
なので、状況によってはもう1つの条件分岐である『Select Case文』を使ったり、複数の値の判定なら『コレクション』などを使うことを検討してみるとよいかもしれません。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク