LOTUSSCRIPT 言語


関係 (比較) 演算子
関係演算子 (比較演算子とも呼ばれる) は、2 つの式を比較します。

構文

expr1 operator expr2

要素

expr1expr2


operator
戻り値

2 つの数値オペランドと関係 (比較) 演算子から構成される式の結果は、True または False です。ただし、どちらか一方または両方のオペランドが NULL であれば、結果は NULL になります。

LotusScript での True (-1) および False (0) の値の扱いについては、「データ型、定数、変数」の章の「論理値」を参照してください。

次の表は、どちらも NULL でない場合の 2 つの式の比較結果です。
演算子演算結果は True結果は False
<より小さいexpr1 < expr2expr1 >= expr2
<= または =<以下expr1 <= expr2expr1 > expr2
>より大きいexpr1 > expr2expr1 <= expr2
>= または =>以上expr1 >= expr2expr1 < expr2
=等しいexpr1 = expr2expr1 <> expr2
<> または ><等しくないexpr1 <> expr2expr1 = expr2

使用法

関係演算子は expr1expr2 のデータ型に応じて、数値比較か文字列比較のいずれかとして解釈されます。次の表は、これらの解釈を示しています。数値のデータ型は、Integer、Long、Single、Double、Currency、日付/時刻 (Variant 型の変数のみ) です。
一方のオペランド他方のオペランド演算
数値数値数値比較。
数値数値データ型の Variant 型、または数値に変換できる文字列値を含む Variant 型数値比較。
数値数値に変換できない String 型の値を含む Variant型の不一致エラー
数値EMPTY を含む Variant 型EMPTY 式としてゼロを使用した数値比較
String 型String 型文字列比較
String 型Variant 型 (NULL 以外)文字列比較
String 型EMPTY を含む Variant 型文字列比較
文字列値を含む Variant 型文字列値を含む Variant 型文字列比較
EMPTY を含む Variant 型文字列値を含む Variant 型EMPTY 式として空の文字列 ("")を使用した文字列比較
数値データ型の Variant 型数値データ型の Variant 型数値比較。
EMPTY を含む Variant 型数値データ型の Variant 型EMPTY 式としてゼロを使用した数値比較
数値データ型の Variant 型文字列値を含む Variant 型数値比較。数式は文字列式よりも小さい
EMPTY を含む Variant 型EMPTY を含む Variant 型式は等しい。

文字列比較

文字列比較の場合は、Option Compare ステートメントで比較方法を設定します。


Option Compare ステートメントを省略すると、既定では、文字列の比較方法は Option Compare Case、Option Compare Pitch と同じになります。

文字列を比較するとき、LotusScript は、各文字列の最初の文字から 1 文字ずつ調べます。2 つの文字の照合順序の値 (文字の順序内における位置の前後関係) が比較されます。


この処理が 2 つの文字列の終りに同時に達した場合、2 つの文字列は同じ長さで等しいと評価されます。それ以外の場合、長さがより長い文字列は、より大きな文字列です。

データ型変換

比較演算でオペランドのデータ型が異なる場合、可能であれば、比較の前に同等のデータ型に変換されます。


日付/時刻の値に対する関係演算は、日付と時刻の両方に対して行われます。2 つの日付/時刻の値が等しくなるためには、日付と時刻の両方が等しくなければなりません。等しくないというのは、少なくともどちらか一方が等しくないということです。これ以外の演算については、比較は、最初に日付に対して行われます。日付が等しければ、時刻に対しても比較が行われます。

数値を比較します。

Print 1 < 2                              ' Prints True
Print 2 > 1                              ' Prints True
Print 1 <> 2                             ' Prints True
Print 2 >= 2                             ' Prints True
Print 2 <= 2                             ' Prints True
Print 2 = 2                              ' Prints True

文字列を比較します。

Print "hello" < "hellp"                  ' Prints True

Dim myVar As Variant, myStr As Variant
myStr = "34"
myVar = 34
Print myVar < myStr                      ' Prints True
Print 45 > myStr                         ' Prints True
Print "45" > myVar                       ' Prints True

2 つの数値をより詳細に比較します。

anInt% = 10
anotherInt% = 15
Dim theResultV As Variant

If anInt% > anotherInt% Then
  Print anInt% & " is greater than " & anotherInt% & "."
Else
  Print anInt% & " is less than or equal to " & _
       anotherInt% & "."
End If
' Output:10 is less than or equal to 15.
theResultV = (anInt% > anotherInt%)
Print theResultV
' Output:False
Print CInt(anInt% > anotherInt%)
' Output:0
Print (anInt% > anotherInt%) = False
' Output:True
' because the expression (anInt% > anotherInt%) = False
' is True.

関連項目