比較演算子Comparison operators

を比較するために使用します。Used to compare expressions.

構文Syntax

result = expression1 comparisonoperator expression2result = expression1 comparisonoperator expression2
result = object1 Is object2result = object1 Is object2
result = string Like patternresult = string Like pattern

比較演算子には、次の指定項目があります。Comparison operators have these parts:

パーツPart 説明Description
resultresult 必須。任意の数値変数Required; any numeric variable.
expressionexpression 必須。任意の式を指定します。Required; any expression.
comparisonoperatorcomparisonoperator 必須。任意の比較演算子を指定します。Required; any comparison operator.
objectobject 必須。任意のオブジェクト名を指定します。Required; any object name.
stringstring 必須。任意の文字列式です。Required; any string expression.
patternpattern 必須。任意の文字列式または文字範囲を指定します。Required; any string expression or range of characters.

注釈Remarks

次の表に、比較演算子と、 _result_がTrueFalse、またはNullかどうかを決定する条件の一覧を示します。The following table contains a list of the comparison operators and the conditions that determine whether result is True, False, or Null.

OperatorOperator True の条件True if False の条件False if Null の条件Null if
<(より小さい)< (Less than) expression1 < expression2expression1 < expression2 expression1 >= expression2expression1 >= expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null
<=(より小さいまたは等しい)<= (Less than or equal to) expression1 <= expression2expression1 <= expression2 expression1 > expression2expression1 > expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null
>(より大きい)> (Greater than) expression1 > expression2expression1 > expression2 expression1 <= expression2expression1 <= expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null
>=(より大きいまたは等しい)>= (Greater than or equal to) expression1 >= expression2expression1 >= expression2 expression1 < expression2expression1 < expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null
=(等しい)= (Equal to) expression1 = expression2expression1 = expression2 expression1 <> expression2expression1 <> expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null
<>(等しくない)<> (Not equal to) expression1 <> expression2expression1 <> expression2 expression1 = expression2expression1 = expression2 expression1_または_expression2 = Nullexpression1 or expression2 = Null

注意

Is 演算子と Like 演算子には、この表の演算子とは異なる特定の比較機能があります。The Is and Like operators have specific comparison functionality that differs from the operators in the table.

2 つの式を比較する際に、式が数値として比較されているか、または文字列として比較されているかを簡単に判断できない場合があります。When comparing two expressions, you may not be able to easily determine whether the expressions are being compared as numbers or as strings. 次の表は、式の比較方法、またはいずれかの式がバリアント型ではない場合の結果を示しています。The following table shows how the expressions are compared or the result when either expression is not a Variant.

条件If ThenThen
両方の式が数値データ型 (ByteBooleanIntegerLongSingleDoubleDateCurrency、または Decimal)Both expressions are numeric data types (Byte, Boolean, Integer, Long, Single, Double, Date, Currency, or Decimal) 数値比較を実行します。Perform a numeric comparison.
両方の式が文字列型 (String)Both expressions are String 文字列比較を実行します。Perform a string comparison.
一方の式が数値データ型で、もう一方が数値の (または数値に変換可能な) バリアント型 (Variant)One expression is a numeric data type and the other is a Variant that is, or can be, a number 数値比較を実行します。Perform a numeric comparison.
一方の式が数値データ型で、もう一方が数値に変換できない文字列のバリアント型 (Variant)One expression is a numeric data type and the other is a string Variant that can't be converted to a number Type Mismatch エラーが発生します。A Type Mismatch error occurs.
一方の式が文字列型 (String) で、もう一方が Null 以外のバリアント型 (Variant)One expression is a String and the other is any Variant except a Null 文字列比較を実行します。Perform a string comparison.
一方の式が Empty で、もう一方が数値データ型One expression is Empty and the other is a numeric data type 0 を Empty 式として使用して、数値比較を実行します。Perform a numeric comparison, using 0 as the Empty expression.
一方の式が Empty で、もう一方が文字列型 (String)One expression is Empty and the other is a String 長さ 0 の文字列 ("") を Empty 式として使用して文字列比較を実行します。Perform a string comparison, using a zero-length string ("") as the Empty expression.

expression1expression2 が両方ともバリアント型 (Variant) の式である場合、その基になる型によって式の比較方法が決まります。If expression1 and expression2 are both Variant expressions, their underlying type determines how they are compared. 次の表に、バリアントの基になる型に応じて、式の比較方法または比較の結果を示します。The following table shows how the expressions are compared or the result from the comparison, depending on the underlying type of the Variant.

条件If ThenThen
両方のバリアント型 (Variant) の式が数値Both Variant expressions are numeric 数値比較を実行します。Perform a numeric comparison.
両方のバリアント型 (Variant) の式が文字列Both Variant expressions are strings 文字列比較を実行します。Perform a string comparison.
一方のバリアント型 (Variant) の式が数値で、もう一方が文字列One Variant expression is numeric and the other is a string 数値式は文字列式よりも小さくなります。The numeric expression is less than the string expression.
一方のバリアント型 (Variant) の式が Empty で、もう一方は数値One Variant expression is Empty and the other is numeric 0 を Empty 式として使用して、数値比較を実行します。Perform a numeric comparison, using 0 as the Empty expression.
一方のバリアント型 (Variant) の式が Empty で、もう一方が文字列One Variant expression is Empty and the other is a string 長さ 0 の文字列 ("") を Empty 式として使用して、文字列比較を実行します。Perform a string comparison, using a zero-length string ("") as the Empty expression.
両方のバリアント型 (Variant) の式が EmptyBoth Variant expressions are Empty 式は等しくなります。The expressions are equal.

単精度浮動小数点型 (Single) を倍精度浮動小数点型 (Double) と比較する場合は、倍精度浮動小数点型 (Double) が単精度浮動小数点型 (Single) の有効桁数に四捨五入されます。When a Single is compared to a Double, the Double is rounded to the precision of the Single. CurrencySingleまたはdoubleと比較する場合は、 singleまたはdoublecurrencyに変換します。If a Currency is compared with a Single or Double, the Single or Double is converted to a Currency.

同様に、 decimalSingleまたはdoubleと比較すると、精度または精度浮動小数点型 ( decimal) に変換されます。Similarly, when a Decimal is compared with a Single or Double, the Single or Double is converted to a Decimal. 通貨の場合、0001より小さい小数値は失われる可能性があります。Decimalの場合、1e ~ 28 より小さい小数値が失われる可能性があります。または、オーバーフローエラーが発生することがあります。For Currency, any fractional value less than .0001 may be lost; for Decimal, any fractional value less than 1E-28 may be lost, or an overflow error can occur. このように小数点以下の値が失われると、2つの値が等しいとして比較されます。Such fractional value loss may cause two values to compare as equal when they are not.

Example

次の例では、式の比較に使用する比較演算子のさまざまな使用方法を示します。This example shows various uses of comparison operators, which you use to compare expressions.

Dim MyResult, Var1, Var2
MyResult = (45 < 35)    ' Returns False.
MyResult = (45 = 45)    ' Returns True.
MyResult = (4 <> 3)    ' Returns True.
MyResult = ("5" > "4")    ' Returns True.

Var1 = "5": Var2 = 4    ' Initialize variables.
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2)    ' Returns True.

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.