メイン画像

VBScript - 大文字と小文字、全角と半角を区別せずに比較する(文字列の比較モードの話)

VBScript - 大文字と小文字、全角と半角を区別せずに比較する(文字列の比較モードの話)


大文字の "A" と小文字の "a" 、全角の "A" と半角の "A" を同じと見なすにはどうすれば良いのか。

Replace 関数や StrComp 関数などの引数には、文字列の比較モードを指定できるようになっている。
この比較モードに「テキストモード」を指定することで、大文字と小文字、全角と半角を区別せずに比較するようになる。

ちなみに文字列の比較モードには、以下の2つのモードがある。

バイナリモード(vbBinaryCompare: 0
大文字と小文字、全角と半角を区別して比較する。
テキストモード(vbTextCompare: 1
大文字と小文字、全角と半角を区別せずに比較する。
全角カナと半角カナも区別されなくなる。ただし、濁点・半濁点を含むカナは別物と判断されるので注意すること。

大文字と小文字は同じ扱い。

ret = StrComp("abc", "ABC", vbTextCompare)
' → 0

全角と半角も同じ扱い。

ret = StrComp("abc", "abc", vbTextCompare)
' → 0

大文字と小文字、全角と半角の混在も同じ扱い。

ret = StrComp("abc", "ABC", vbTextCompare)
' → 0

全角カナと半角カナも同じ扱い。

ret = StrComp("アイウエオ", "アイウエオ", vbTextCompare)
' → 0

しかし、濁点または半濁点のカナは、全角と半角で異なる文字と判断される。

ret = StrComp("ガ", "ガ", vbTextCompare)
' → 1

ret = StrComp("パ", "パ", vbTextCompare)
' → 1

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事