前回If~Then~ElseIfステートメントについて解説しました。
【Excel VBA】If~Then~ElseIfステートメントで複数条件を処理を分岐させる方法 | Excelを制する者は人生を制す ~No Excel No Life~
このような条件式でをコーディングする際、セットで覚える必要があるのが演算子です。
条件式で使われる演算子は比較演算子と論理演算子の2種類に大別できます。
これはVBA特有の知識ではなく、すでに常日頃Excelで扱っている内容といっしょのため、あまり意識していなくても使いこなしている方も多いはず。(他のプログラミング言語でも内容はいっしょ)
今回は復習の意味合いも込めてExcel VBAで取り扱う比較演算子と論理演算式についてまとめていきます。
比較演算子とは?
まずは、一般的な比較演算子の定義を確認します。
プログラミング言語などの演算子の一つで、2つの値の比較を行い、結果を真偽値(trueまたはfalse)で返すもの。
種類や意味は言語によって様々だが、数の一致や大小は数学の表記に習って「=」(等しい)「>」(より大きい)「<」(より小さい)の組み合わせで記述する場合が多い。その際、「~以上」(≧)は「>=」または「=>」、「~以下」(≦)は「<=」または「=<」とする。不一致(≠)は「!=」と表記されることが多い。 「=」は代入の意味で用いられることもあるため、混同しないよう一致の比較演算子を「==」とする言語が多い。型の異なるデータを比較するとエラーになる言語と、同じ型に自動的に変換して比較する言語があり、後者の場合、例えば「==」を値の一致、「===」を値とデータ型の一致として使い分ける言語もある。一致・不一致の演算子は数だけでなく文字や文字列、真偽値など様々なデータ型に用いられる。 オブジェクトやデータ構造など複雑なデータの集合体を比較演算子によって比較できる言語もあるが、その際、一致・不一致は「両方ともメモリ上の同一の実体を指し示している(参照が一致している)」場合と、「含まれるデータの種類や名称とその値が同じである(複製の関係にある)」場合があるため、それぞれを異なる記法で書き分けるようになっている場合が多い。
参照元:比較演算子とは 〔 関係演算子 〕 【 comparison operator 】 – 意味/解説/説明/定義 : IT用語辞典
Excel VBAで使用する比較演算子一覧
Excel VBAで扱う比較演算子は以下の6種類です。(以下右辺はA、左辺はBとして説明)
AとBは主にオブジェクトやプロパティ(値など)などが入ります。
- =(等しい)
- 【式】A=B
AとBが等しい場合はTRUE、等しくない場合はFALSE - <(より小さい)
- 【式】A<B
AがBより小さい場合はTRUE、そうでない場合(Bと等しい、あるいは大きい場合)はFALSE - <=(以下)
- 【式】A<=B
AとB以下の場合はTRUE、そうでない場合(Bより大きい場合)はFALSE - >(より大きい)
- 【式】A>B
AがBより大きい場合はTRUE、そうでない場合(Bと等しい、あるいは小さい場合)はFALSE - >=(以上)
- 【式】A>=B
AとB以上の場合はTRUE、そうでない場合(Bより小さい場合)はFALSE - <>(等しくない)
- 【式】A<>B
AとBが等しくない場合はTRUE、等しい場合はFALSE
論理演算子とは?
まずは、一般的な論理演算子の定義を確認します。
論理演算の種類を表す記号。各論理演算に対応して定義されており、「否定」(NOT)、「論理積」(AND)、「論理和」(OR)の3種類がある。処理系によっては「否定論理積」(NAND:Not AND)、「否定論理和」(NOR:Not OR)などが用意されていることもある。
論理演算子の具体的な記号は言語や処理系によって独自に定義されている。演算の対象となるデータは「オペランド」(operand)と呼び、論理演算は論理演算子とオペランドの組み合わせで記述する。演算子とオペランドの並びは言語の採用する記法により定められている。
論理演算の真の値を“1”、偽の値を“0”に対応させ、数値データの各ビットに対して論理演算を行うことを特にビット演算というが、プログラミング言語によっては純粋な論理演算とビット演算で別の演算子を用いるようにできている場合がある。例えば、C言語系の多くの言語では、論理積の論理演算に「&&」を、ビット演算には「&」を用いる。同様に、論理和の演算にはそれぞれ「||」と「|」を用いる。
参照元:論理演算子とは 【 logic operator 】 – 意味/解説/説明/定義 : IT用語辞典
Excel VBAで使用する論理演算子一覧
Excel VBAで扱う論理演算子は以下の3種類が代表的です。
AとBは主に条件式(前述の比較演算子など)が入ります。
上記ベン図と以下式内のA・Bは一致します。
- And(論理積)
- 【式】A And B
AとBの両方がTRUEの場合のみTRUE、それ以外の場合はFALSEベン図でいうとAとBが重なっている部分がTRUE、それ以外がFALSEとなります。
- Or(論理和)
- 【式】A Or B
AとBのいずれかがTRUEの場合のみTRUE、AとBの両方がFALSEの場合のみFALSEベン図でいうとAとBの2つの円がTRUE、それ以外の余白部分がFALSEとなります。
- Not(論理否定)
- 【式】Not A
Aの定めた条件の結果(TRUE/FALSE)が逆(反転)になります。ベン図でいうとAの円以外がTRUE、Aの円部分がFALSEとなります。
まとめ
演算子はかなり使う機会が多いので各演算子がどのような動きをするのか、覚えておきましょう。
特に比較演算子全般と論理演算式のAndとOrは頻出なので、いろいろ試すと知識・スキルとして定着するのも早いのでおすすめですよ!