VBSで文字列を比較する #1

文字列が等しいか

StrComp(string1, string2, [compare])

同じ文字列なのか、違う文字列なのか、それだけを判断するときには
StrComp()を使うと良いです。

第三引数は、 文字列比較の種類を指定できます。(省略可)
省略した場合の初期値は「0」です。
「0」・・・バイナリモードで比較を行う(カタカナ、平仮名等の区別をする)
「1」・・・テキストモードで比較を行う(カタカナ、平仮名等の区別をしない)

下記は「バイナリモード」での比較です。
一番上の行のみ、「0(等しい)」が返ってきます。

ret = StrComp("キノコ", "キノコ") '「0」等しい
ret = StrComp("きのこ", "キノコ") '「-1」等しくない
ret = StrComp("キノコ", "キノコ")   '「1」等しくない

下記は、「テキストモード」での比較です。
全て「0(等しい)」が返ってきます。

ret = StrComp("キノコ", "キノコ", 1) '「0」等しい
ret = StrComp("きのこ", "キノコ", 1) '「0」等しい
ret = StrComp("キノコ", "キノコ", 1)   '「0」等しい

詳しくはマイクロソフトのリファレンスからどうぞ。

特定の文字が含まれているか

文字列の中に、特定の文字列が含まれているか調べるのには
InStr関数を使うのが簡単です。

InStr([start], string1, string2, [compare])

第一引数は、先頭何文字目から文字列検索をしたいか指定します。(省略可)
第二引数は、検索対象の文字列を指定します。
第三引数は、探したい文字列を指定します。
第四引数は、文字列比較の種類を指定します。(省略可)

戻り値は、一致する文字列がある場合には先頭文字列のインデックス番号、
また、一致する文字列が無い場合は「0」が結果として出ます。
下記のスクリプトが例です。
「0」が出ればその文字列は存在しないと判断できます。

ret = InStr("あいうえお", "あ") 		'「1」
ret = InStr("あいうえお", "う") 		'「3」
ret = InStr("あいうえお", "いうえお")	'「2」
ret = InStr("あいうえお", "うえお")	'「3」

ret = InStr("あいうえお", "いうい")	'「0」
ret = InStr("あいうえお", "アイウエオ") 	'「0」
ret = InStr("あいうえお", "アイウエオ")	'「0」

コメント

タイトルとURLをコピーしました