【Excel VBA】If~ThenステートメントとOr演算子で複数条件(~または)を設定する方法

VBAでIf~Thenステートメントを設定される際、複数の条件式を組み合わせたい場合があるかと思います。

VBAでは「~または」の複数条件を設定する際にはOr演算子が必要になります。

今回はIf~ThenステートメントとOr演算子で複数条件(~または)を設定する方法を解説していきます(・∀・)

If~ThenステートメントとOr演算子を組み合わせた際の基本構文

もちろん「ElseIf」などでさらに条件分岐を設定することも可能です。(今回はオーソドックスな例を紹介)

条件式1

1つ目の判断基準となる条件を指定します。

たとえば、”A4セルは○ですか?”というようなYES/NOでできる質問のこと。

条件式2

条件式1と組みあせたい2つ目の判断基準となる条件を指定します。

And演算子やOr演算子と組み合わせることで条件式は2つ以上設定することが可能です。

処理1

上記複数の条件式の結果が真(TRUE)の場合に行う処理を指定します。

処理2

上記複数の条件式の結果が偽(FALSE)の場合に行う処理を指定します。

使用例

日曜日と月曜日には”休日”、それ以外の曜日は”営業日”であるお店があるとします。

A2セルが曜日、B2セルが”休日”か”営業日”のどちらか判定する欄で、A2セルの値が”日”か”月”の場合はB2セルの値が”休日”、A2セルの値がそれ以外の場合はB2セルの値が”営業日”となるように設定します。

If~Thenステートメント+Or演算子①

ワークシート上でA2セルはドロップダウンで選択することとしますので、VBA上でA2セルへの入力制御は行わないこととします。

If~Thenステートメント+Or演算子②

入力規則については下記記事をご参照ください ↓

入力規則の基本テクニック「リスト」設定方法 | Excelを制する者は人生を制す ~No Excel No Life~

2行目の「If」と「Then」の間が条件式となります。

そして、条件式を複数つなげるため、条件1の後に「Or」(間に半角スペース)をつけて条件2を記述します。

今回の条件1は「A2セルが”日”」なので「Range(“A2”).Value = “日”」となり、条件2は「A2セルが”月”」なので「Range(“A2”).Value = “月”」となります。

続いて3行目が条件1を満たした場合の処理1を記述します。(条件1の真の場合)

処理は「B2セルの値を”休日”にする」なので「Range(“B2”).Value = “休日”」となります。

4行目に「Else」、5行目で条件を満たさない場合の処理(処理2)を記述します。(偽の場合)

処理2は「B2セルの値を”営業日”にする」なので「Range(“B2″).Value = “営業日”」となります。

6行目に「End If」で締めて終了になります。

マクロ動作イメージ

If~Thenステートメント+Or演算子③

B2セルが最初はブランクになっています。

If~Thenステートメント+Or演算子④

マクロを起動すると、A2セルが”日”か”月”の値が入っていればB2セルに”休日”の値が返ります。

If~Thenステートメント+Or演算子⑤

そして、A2セルの値が”日”と”月”以外の値であればB2セルに”営業日”の値が返ります。

Excel内の類似機能

If~ThenステートメントとOr演算子の組み合わせにもっとも類似したExcelの機能といえば、フォーマット関数でのIF関数とOR関数の組み合わせです。(考え方はいっしょです)

VBAのコードとフォーマット関数では記述の仕方が少しばかり異なるので、フォーマット関数で設定したい場合は下記記事をご参照ください。

IF関数とOR関数で複数条件(~または)を設定する方法 | Excelを制する者は人生を制す ~No Excel No Life~

If~ThenステートメントはIF関数とくらべて、範囲選択やコピー・消去などのメソッドも設定できるため、より複雑な設定が可能です(・∀・)

まとめ

Or演算子は活用する機会が多いので、ぜひともIf~Thenステートメントとセットで覚えると良いですね(・∀・)

And演算子はこちらの記事をご参照ください ↓

【Excel VBA】If~ThenステートメントとAnd演算子で複数条件(~かつ)を設定する方法 | Excelを制する者は人生を制す ~No Excel No Life~

Or演算子の考え方自体は下記記事をご参照ください。

【Excel VBA】比較演算子と論理演算式まとめ | Excelを制する者は人生を制す ~No Excel No Life~

ベン図だとかなり理解しやすいですよ(・∀・)


この記事が気に入ったら
いいね ! しよう