【Word VBA】文字列を比較するWordマクロ

2010年6月26日

文字列関数です。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 文字列を比較する)

-コード
-, ,