【VBA】IF文のネストの使い方【複数の条件分岐・処理を行う】

VBA

複数の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文の処理を満遍なく通るようにしています。

 

上のコードでは変数iの値によって処理内容を分岐するという内容になっています。

そして、その変数iは1、2、3と増えていくという流れになっています。

そのIF文の処理内容は下の結果のように変数iに合わせて”変数iは「〇」です”とイミディエイトウィンドウに表示されるようにしています。

 

IF文のネストの実践コード

では、IF文のネストを使って、実際のエクセルシート内のセルを操作してみます。

例えば、下の表に対して試してみます。

上の表では一人ひとりに点数を設定しています。

そして、下は点数が80以上の場合は”A”、80未満で60以上なら”B”、それ以外(60未満)なら”C”を列Eに表示するというコードになっています。

 

そして、上のコードを実行すると下のような結果になります。

 

このようにIF文の中にIF文を1つネストさせるだけでも、条件と処理が1つずつ増やすことができます。

それによって、さらに詳細な処理を行うことができるようになります。

注意基本的にIF文はもちろん、FOR文などでもネスト数を増やしていくことでコードの可読性が落ちます

なので、状況によってはもう1つの条件分岐であるSelect Case文を使ったり、複数の値の判定なら『コレクション』などを使うことを検討してみるとよいかもしれません。

スポンサーリンク

コメント