#173 文字列の大文字・小文字を区別して比較するには? VBA

まず、次のコードを実行してみましょう。
Dim strA As String
Dim strB As String
  
strA = "ABCDEFG"
strB = "abcdefg"
  
If strA = strB Then
  MsgBox "2つの変数は同じです!"
Else
  MsgBox "2つの変数は異なります!"
End If

実行結果実行結果は右図のようになります。

上記のコードでは、変数strAとstrBはそれぞれ大文字・小文字となっていますが、IF文では同じものと判断されてしまいます。もちろん、大文字・小文字を区別する必要がない場合にはこれで良いのですが、区別して比較しなければいけないような場合には、コードに多少の工夫が必要となってきます。

それには「StrComp」関数を使います。StrComp関数では、比較する文字列2つに続いて、3つ目の引数に定数「vbBinaryCompare」を指定します。これによって2つの文字列はバイナリとして比較されますので、"ABCDEFG"と"abcdefg"は別物と判断されます
Dim strA As String
Dim strB As String
  
strA = "ABCDEFG"
strB = "abcdefg"
  
If StrComp(strA, strB, vbBinaryCompare) = 0 Then
  MsgBox "2つの変数は同じです!"
Else
  MsgBox "2つの変数は異なります!"
End If

実行結果今度の実行結果は右図のようになります。


※StrComp関数は、2つの文字列が同じである場合にはゼロを返します。しかし、同じかどうかの比較だけでなく、両者の大小の比較も行わせることができます。その場合の返り値は次のとおりです。
  • 第1引数<第2引数のとき・・・・・-1
  • 第1引数>第2引数のとき・・・・・1
  • いずれかの引数がNULLのとき・・・・・NULL値
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved