エクセルマクロ&VBA初心者超入門講座(5)【If文その2】

猫と中古PC

はじめに

前回のエクセルマクロ&VBA初心者超入門講座(4)【Withステートメント・マクロの登録・If文その1】ではExcel画面上の図形(オートシェイプ)にマクロを登録したり、If文による条件分岐を学びました。「エクセルマクロ&VBA初心者入門講座(5)」では、より複雑な条件分岐から学習を始めましょう。今回もどうぞよろしくお願いいたします。

より複雑なif文

前回学んだif文は条件式が1つしかないIf文でした。しかし論理演算子を用いれば、1つのif文で複雑な条件分岐を定義できます。

また前回は「=」という等しいかどうかを表す比較演算子しか出てきませんでした。そこでまず、エクセルのマクロで利用できる比較演算子の一覧を下記に示します。

尚、「● = ▲」等と比較演算子が利用された際は、必ずその条件式が評価され、TrueFalseのどちらか一方の値を返します。

比較演算子 使用例 意味
= if Range(“A1”).Value = 10 then もしA1セルが10と等しければ
> if Range(“A1”).Value > 10 then もしA1セルが10より大きければ
< if Range(“A1”).Value < 10 then もしA1セルが10より小さければ
>= if Range(“A1”).Value >= 10 then もしA1セルが10以上ならば
<= if Range(“A1”).Value <= 10 then もしA1セルが10以下ならば
<> if Range(“A1”).Value <> 10 then もしA1セルが10でなければ

続いて論理演算子をご紹介します。

論理演算子 意味 例の結果
And かつ 5 > 1 And 5 > 3 True
Or または 5 >10 Or 5 >= 4 True
Not 論理否定 Not 10 > 1 False

少し解説が必要かもしれませんね。

「条件式1 And 条件式2」の場合、条件式1がTrueでかつ、条件式2もTrueであれば、全体の評価もTrueになります。上の表の例では、「5 > 1」はTrueですし、「5 > 3」もTrueです。

一方、Or演算子は、条件式1と条件式2のどちらか一方がTrueであれば全体もTrueとなります。例えば、「猿は魚の一種である」または「猿は哺乳類である」という条件式ならば、「猿は魚の一種である」はFalseですが、「猿は哺乳類である」はTrueなので、全体はTrueになります。要はOr演算子の場合、どちらか一方がTrueならば、全体もTrueになります。

「Not 10 > 1」について。「10 > 1」はTrueですね。それをNot(論理否定)で否定するわけですから、Trueの反対のFalseになります。逆に例えば「Not 10 < 1」と書けば結果はTrueになります。

では実際にサンプルコードを見てみましょう。

このように、AndOrNotを利用すれば複数の条件式を用いて複雑な条件分岐が可能になります。

エクセルマクロ&VBA初心者超入門講座一覧に戻る

関連記事

[AD]自分のペースでゆったり学ぶ Excel VBA

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA