VB6・VBA関数メモ:StrComp関数

StrComp関数についてメモしておきます。
単純な文字列比較なら「sting1 = string2」で良いと思いますが、
StrComp関数では大文字と小文字、半角と全角、ひらがなとカタカナを
区別せずに比較することができます。


概要

StrComp(String1, String2, [Conpare])
機能 指定の文字列を比較
戻り値 String1がString2未満の場合は「-1」
String1とString2が等しい場合は「0」
String1がString2を超える場合は「1」
String1またはString2がNull場合は「Null」


引数

引数名説明
String1 比較対象文字列1
String2 比較対象文字列2
compare (省略可)
比較モードの定数


引数:定数

引数:compare
定数名説明使用例出力
vbUseCompareOption-1Option Compare ステートメントの設定を使用StrComp("abc", "abc", vbUseCompareOption)0
vbBinaryCompare0(規定値)
バイナリモード
※大文字と小文字、半角と全角、ひらがなとカタカナを区別する
StrComp("abc", "ABC", vbBinaryCompare)1
vbTextCompare1テキストモード
※大文字と小文字、半角と全角、ひらがなとカタカナを区別しない
StrComp("abc", "ABC", vbTextCompare)0
vbDatabaseCompare2(Accessのみ)
DBに格納されている設定に基づいて比較
StrComp("abc", "abc", vbDatabaseCompare)0


使用例

説明記述例出力
文字列を比較
(大文字と小文字、半角と全角、ひらがなとカタカナを区別する)
StrComp("あいうeo", "アイウEO") -1
文字列を比較
(大文字と小文字、半角と全角、ひらがなとカタカナを区別しない)
StrComp("あいうeo", "アイウEO", vbTextCompare) 0
String1がString2未満になる例
(String1 < String2となる場合)
StrComp("abc", "ac") -1
String1がString2を超える例
(String1 > String2となる場合)
StrComp("ac", "abc") 1
String1がNullの場合 StrComp("abc", Null) Null
String2がNullの場合 StrComp(Null, "abc") Null
String1とString2の両方がNullの場合
※両方Nullでも一致しない
StrComp(Null, Null) Null


応用例

説明記述例出力
2つの配列の文字列が、
大文字と小文字、半角と全角、ひらがなとカタカナを
区別せずに一致するかチェック
Dim str1 As Variant
Dim str2 As Variant
Dim idx As Long
Dim isEqual As Boolean

str1 = Array("abc", "abc", "abc", "abc", _
             "あいう", "あいう", "あいう")
str2 = Array("abc", "ABC", "abc", "ABC", _
             "あいう", "アイウ", "アイウ")

isEqual = True
For idx = LBound(str1) To UBound(str1)
    If StrComp(str1(idx), str2(idx), vbTextCompare) <> 0 Then
        isEqual = False
    End If
Next idx

Debug.Print isEqual
True


コメント
コメントする








    
この記事のトラックバックURL
トラックバック