VBA 比較演算子(等しくない、大きい、小さい、等しい、その他)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 7月 6, 2022

VBAでは、比較演算子を使って値を比較することができます。これらの演算子を使用することで、値を比較し、結果としてブール値のTrueまたはFalseを返すことができます。

VBA の主な比較演算子

VBAで使用される主な比較演算子は次のとおりです。

比較演算子

説明
=

に等しい

<>

と等しくない

>

より大きい

>=

以上

<

より小さい

<=

以下

等しくない(<>)

等しくないを表す演算子は <> です。これは2つの値が等しくないかどうかを調べ、TRUEまたはFALSEを返します。これは 小さい大きいを組み合わせた演算子です。

この例では、5が3と等しくないかどうかを調べ、MessageBoxにTrueを返します。

MsgBox 5 <> 3

セルの値が等しくない

数字を比較する方法はいくつかあります。前の例では、5 と 3 をハードコードしていました。ここでは、値を比較する他の2つの方法を紹介します。

この例では、2 つのセルの値が互いに等しくないかどうかをテストします。

MsgBox Range("A1").Value <> Range("B1").Value

値を比較するもう一つの方法は、変数を使用することです。

Sub NotEqualTo ()
  Dim intA As Integer
  Dim intB As Integer
  Dim blnResult As Boolean

  intA = 5
  intB = 6

  If intA <> intB Then
    blnResult = True
  Else
    blnResult = False
  End If

End Sub

この例では、整数型変数 intAが intBと等しくないかどうかをチェックしています。もしこれが正しければ、ブール変数 blnResultの値はTrueになり、そうでなければFalseになります。

このとき、If文の <>演算子を使用して、intA intBの値が異なるかどうかをチェックします。

If intA <> intB Then
    blnResult = True
Else
    blnResult = False
End If

intAの値は5、intBの値は6で、変数が等しくないので、blnResultはTrueを返します。

vba comparison operators not equal to 比較演算子

等しい

等しい(=)演算子もまったく同じ働きをします。2つの値が等しいかどうかをチェックし、TrueまたはFalseを返します。以下はコードの例です。

Sub EqualTo()
  Dim intA As Integer
  Dim intB As Integer
  Dim blnResult As Boolean

  intA = 5
  intB = 5 

  If intA = intB Then
    blnResult = True
  Else
    blnResult = False
  End If
End Sub

この例では、intAが intBと等しいかどうかをチェックしています。もしこれが正しければ、ブール値blnResultの値はTrueになり、そうでなければFalseになります。

まず、intAintBの値を 5 に設定します。

intA = 5
intB = 5

その後、If文の =演算子を使って、intA intBの値が等しいかどうかを調べます。

If intA = intB Then
    blnResult = True
Else
    blnResult = False
End If

両方の変数がそれぞれ5と等しいので、blnResultはTrueを返します。

vba comparison operators equal to 比較演算子

大きい / 小さい

より大きい(>) と より小さい(<) 演算子も全く同じように動作します。

より大きい

MsgBox 5 > 3

より小さい

MsgBox 5 < 3

以上 / 以下

ある値が、以上、あるいは以下であるかどうかを調べるには、等しい (=) 演算子と 大きい (>) / 小さい (<) 演算子を組み合わせます。

以上(大きいまたは等しい)

MsgBox 5 >= 3

以下(小さいまたは等しい)

MsgBox 5 <= 3

今までと同じ手順で、以上(>=)を使ってみましょう。

Sub GreaterThanEqualTo ()
  Dim intA As Integer
  Dim intB As Integer
  Dim blnResult As Boolean

  intA = 5
  intB = 5

  If intA >= intB Then
    blnResult = True
  Else
    blnResult = False
  End If

End Sub

この例では、intAintB以上どうかを調べます。これが正しければ、ブール値blnResultの値はTrueになり、そうでなければFalseになります。

If文の>=演算子を使用して、intAの値が intB より大きいか等しいかどうかを調べます。

If intA >= intB Then
    blnResult = True
Else
    blnResult = False
End If

結論から言うと、両方の変数が5に等しいので、blnResultはTrueを返します。

vba comparison operators greater than or equal to 比較演算子

Is演算子

Is演算子は、2つのオブジェクト変数が同じオブジェクトを含むかどうかをテストします。

Sub CompareObjects()
Dim ws1 As Worksheet, ws2 As Worksheet
 
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
 
If ws1 Is ws2 Then
    MsgBox "同じワークシートです"
Else
    MsgBox "異なるワークシートです"
End If
 
End Sub

Like 演算子

Like演算子を使用すると、完全ではない文字列のマッチを見つけることができます。この例では、ある文字列が “Mr.” で始まっているかどうかを調べます。

Sub LikeDemo()

Dim strName As String
Dim blnResult As Boolean

strName = "Mr. Michael James" 
If strName Like "Mr*"Then
    blnResult = True
Else
    blnResult = False
End If

End Sub

文字列を比較する方法を学びたい方はこちら:VBA 文字列の比較 – StrComp

論理演算子の使い方を学びたい方はこちら:VBA 論理演算子

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples