link前回If~Then~ElseIfステートメントについて解説しました。Life~このような条件式でをコーディングする際、セットで覚える必要があるのが演算子です。条件式で使われる演算子は比較演算子と論理演算子の2種類に大別できます。これはVBA特有の知識ではなく、すでに常日頃Excelで扱っている内容といっしょのため、あまり意識していなくても使いこなしている方も多いはず。VBAで取り扱う比較演算子と論理演算式についてまとめていきます。まとめ比較演算子とは?まずは、一般的な比較演算子の定義を確認します。プログラミング言語などの演算子の一つで、2つの値の比較を行い、結果を真偽値(trueまたはfalse)で返すもの。種類や意味は言語によって様々だが、数の一致や大小は数学の表記に習って「=」(等しい)「>」(より大きい)「<」(より小さい)の組み合わせで記述する場合が多い。その際、「~以上」(≧)は「>=」または「=>」、「~以下」(≦)は「<=」または「=<」とする。不一致(≠)は「!=」と表記されることが多い。「=」は代入の意味で用いられることもあるため、混同しないよう一致の比較演算子を「==」とする言語が多い。型の異なるデータを比較するとエラーになる言語と、同じ型に自動的に変換して比較する言語があり、後者の場合、例えば「==」を値の一致、「===」を値とデータ型の一致として使い分ける言語もある。一致・不一致の演算子は数だけでなく文字や文字列、真偽値など様々なデータ型に用いられる。オブジェクトやデータ構造など複雑なデータの集合体を比較演算子によって比較できる言語もあるが、その際、一致・不一致は「両方ともメモリ上の同一の実体を指し示している(参照が一致している)」場合と、「含まれるデータの種類や名称とその値が同じである(複製の関係にある)」場合があるため、それぞれを異なる記法で書き分けるようになっている場合が多い。VBAで扱う比較演算子は以下の6種類です。(以下右辺はA、左辺はBとして説明)AとBは主にオブジェクトやプロパティ(値など)などが入ります。=(等しい)【式】A=BAとBが等しい場合はTRUE、等しくない場合はFALSE<(より小さい)【式】A<BAがBより小さい場合はTRUE、そうでない場合(Bと等しい、あるいは大きい場合)はFALSE<=(以下)【式】A<=BAとB以下の場合はTRUE、そうでない場合(Bより大きい場合)はFALSE>(より大きい)【式】A>BAがBより大きい場合はTRUE、そうでない場合(Bと等しい、あるいは小さい場合)はFALSE>=(以上)【式】A>=BAとB以上の場合はTRUE、そうでない場合(Bより小さい場合)はFALSE<>(等しくない)【式】A<>BAとBが等しくない場合はTRUE、等しい場合はFALSE論理演算子とは?まずは、一般的な論理演算子の定義を確認します。論理演算の種類を表す記号。各論理演算に対応して定義されており、「否定」(NOT)、「論理積」(AND)、「論理和」(OR)の3種類がある。OR)などが用意されていることもある。論理演算子の具体的な記号は言語や処理系によって独自に定義されている。演算の対象となるデータは「オペランド」(operand)と呼び、論理演算は論理演算子とオペランドの組み合わせで記述する。演算子とオペランドの並びは言語の採用する記法により定められている。論理演算の真の値を“1”、偽の値を“0”に対応させ、数値データの各ビットに対して論理演算を行うことを特にビット演算というが、プログラミング言語によっては純粋な論理演算とビット演算で別の演算子を用いるようにできている場合がある。C言語系の多くの言語では、論理積の論理演算に「&&」を、ビット演算には「&」を用いる。同様に、論理和の演算にはそれぞれ「||」と「|」を用いる。VBAで扱う論理演算子は以下の3種類が代表的です。AとBは主に条件式(前述の比較演算子など)が入ります。上記ベン図と以下式内のA・Bは一致します。BAとBの両方がTRUEの場合のみTRUE、それ以外の場合はFALSEベン図でいうとAとBが重なっている部分がTRUE、それ以外がFALSEとなります。BAとBのいずれかがTRUEの場合のみTRUE、AとBの両方がFALSEの場合のみFALSEベン図でいうとAとBの2つの円がTRUE、それ以外の余白部分がFALSEとなります。AAの定めた条件の結果(TRUE/FALSE)が逆(反転)になります。ベン図でいうとAの円以外がTRUE、Aの円部分がFALSEとなります。まとめ演算子はかなり使う機会が多いので各演算子がどのような動きをするのか、覚えておきましょう。エクセル専門家のパラレルワーカー。運営ブログは「Excelを制する者は人生を制す」「パラレルキャリアで生きていく。関数(秀和システム)」の他、エクセル本2冊をKindle出版(KDP)。現在は講師業やコンサル業などの独自サービスを絶賛チャレンジ中。趣味は娘を愛でること、読書(主にビジネス書・漫画)、ラーメン食べ歩き。共有:TwitterFacebookPocket無料メルマガはじめました!(特典あり)メールアドレスを登録すればブログではお伝えできない情報を無料で受信できます。VBA】If~Then~ElseIfステートメントで複数条件を処理を分岐させる方法」コメントをどうぞ返信をキャンセルする。~作業効率を劇的に変えるExcelの使い方~」(秀和システム)著者。Excel関連の資格は以下を保有。スタンダード通信会社勤務の現役サラリーマン。心が安らぐ瞬間は2人の娘といちゃいちゃする時間。ビジネス書や漫画が大好き。好きな食べ物はラーメン。二郎や蒙古タンメンがお気に入り。Excelを10年間以上ほぼ毎日数時間触り続け、本業でも複数の業界・業種のバックオフィスの設計~運営に携わってきた森田が、業務効率・精度を高めるExcelの活用方法を発信していきます。詳細プロフィールはこちら!無料メルマガはじめました!(特典あり)メールアドレスを登録すればブログではお伝えできない情報を無料で受信できます。