文字列関数です。1行マクロでもあります。
通常の文字列の比較では、「ABCD」(半角)と「abcd」(半角)と「ABCD」(全角)と「abcd」(全角)とはすべて別々の文字列として扱われます。
つまり、全角・半角の区別と大文字・小文字の区別がなされるんですね。
また「アイウエオ」と「あいうえお」も別の文字列ですね。
この区別を「バイナリモード」の比較と呼びます。
しかし、これらを同じものとして比較する方法があるんです。
それが「テキストモード」の比較です。
これらの比較モードを設定して、その結果を値として表示するのがStrComp()という関数。使えます。
<目次>
マクロ1の解説
StrComp(文字列1, 文字列2, 比較モード)
文字列1と文字列2が同じ場合に 0
文字列1が文字列2未満の場合に -1
文字列1が文字列2を超える場合に 1
の値を示します(「値を返す」と表現されます)。
比較モードは、
vbBinaryCompare バイナリーモード
vbTextCompare テキストモード
とから選びます。
マクロ1
Sub 文字列を比較するマクロ1() MsgBox StrComp("あいうえお", "アイウエオ", vbTextCompare) End Sub
このプログラムは、StrCompの結果の値を示します。
結果、表示されるものは以下の通り。
つまり、「あいうえお」 と 「アイウエオ」 とが同じものとして認識されています。
マクロ2
Sub 文字列を比較するマクロ2() MsgBox StrComp("あいうえお", "アイウエオ", vbBinaryCompare) End Sub
こちらは、以下の結果です。
参考書籍
かんたんプログラミング Excel2003 VBA コントロール・関数編
P235~P237 (5-4 文字列を比較する)