比較演算子
比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合は「False」を返します。
値 を比較するには、「 < 、<= 、> 、>= 、= 、<> 」の 6 種類の演算子を使用します。
オブジェクト を比較するには、「Is 演算子」を使用します。
文字列 を比較するには、「Like 演算子 、<> 、= 」の3種類の演算子を使用します。
比較演算子の使い方(値の比較)
result = expression1 < expression2
result = expression1 <= expression2
result = expression1 > expression2
result = expression1 >= expression2
result = expression1 = expression2
result = expression1 <> expression2
項目の説明
- expression ・・・ 任意の数値・数式を指定します
- result ・・・ 任意の数値変数を指定します。
expression1、expression2 のいずれかが Null 値に評価される式のときは、演算結果 result も Null 値となります。
比較演算子の使い方(Is 演算子)
result = object1 Is object2
項目の説明
- object1,object2 ・・・ 任意のオブジェクトへの参照を指定します
- result ・・・ 任意の数値変数を指定します
object1 と object2 に指定した変数が、同じオブジェクトを参照している場合、result は真(True)になります。異なるオブジェクトを参照している場合、result は偽(False)になります。
一方または両方の式が Null 値のとき、result は Null 値になります。
Range オブジェクトの比較には機能しません。
比較演算子の使い方(文字列の比較)
result = string1 = string2
result = string1 <> string2
result = string Like pattern
項目の説明
- string,string1,string2 ・・・ 任意の文字列
- pattern ・・・ 任意の文字列(ワイルドカードを含む)を指定します。
- result ・・・ 任意の数値変数を指定します。
Empty 値 を持つ式は、長さ0の文字列(””) として扱われます。
使用できるワイルドカード一覧
演算子 | 意味 |
* | 任意の文字列 |
? | 任意の1文字 |
# | 任意の1文字(数値:0-9) |
[charlist] | charlist 中の1文字 |
[!charlist] | charlist 中の文字以外の1文字 |
[a-z] | 範囲指定(アルファベット a から z までの一文字) |
VBA 比較演算子の使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
Sub Sample_Compare_Operator() '比較演算子 Dim a, b a = 10: b = 8 Debug.Print a < b 'False Debug.Print a <= b 'False Debug.Print a > b 'True Debug.Print a >= b 'True Debug.Print a = b 'False Debug.Print a <> b 'True 'Is 演算子 Dim Object1 As Object, Object2 As Object, object3 As Object Set Object1 = ActiveWorkbook.Worksheets(1) Set Object2 = ActiveWorkbook.Worksheets(2) Set object3 = Object1 Debug.Print Object1 Is Object2 'False Debug.Print Object1 Is object3 'True '文字列比較 Dim tmp1Str As String Dim tmp2Str As String Dim tmpVar tmp1Str = "あいうえお" tmp2Str = "かきくけこ" Debug.Print tmp1Str = tmp2Str 'False Debug.Print tmp1Str <> tmp2Str 'True Debug.Print tmp1Str = tmpVar 'False 'Like 演算子 Dim tmpstr1 As String, tmpstr2 As String, tmpstr3 As String tmpstr1 = "0e": tmpstr2 = "ABCDEFG": tmpstr3 = "#A0abcdefg" Debug.Print tmpstr1 Like "??" 'True Debug.Print tmpstr1 Like "[a-z]*" 'False Debug.Print tmpstr1 Like "[0-9][a-z]" 'True Debug.Print tmpstr2 Like "a*" 'False Debug.Print tmpstr2 Like "A*" 'True Debug.Print tmpstr3 Like "?[A-Z][0-9]*" 'True End Sub |