2つの文字列を比較する関数 StrComp()
以前クイックソートを学んだときに、文字を比較する方法で悩みました。
今回紹介するのは、その悩みを一発解消する関数です。
StrComp()です。
通常の文字列の比較では、「ABCD」(半角)と「abcd」(半角)と
「ABCD」(全角)と「abcd」(全角)とはすべて別々の文字列として扱われます。
つまり、全角・半角の区別と大文字・小文字の区別がなされるんですね。
また「アイウエオ」と「あいうえお」も別の文字列ですね。
この区別を「バイナリモード」の比較と呼びます。
しかし、これらを同じものとして比較する方法があるんです。
それが「テキストモード」の比較です。
これらの比較モードを設定して、その結果を値として表示するのが
StrComp()という関数。使えます。
以下、メモみたいなもので、完成したプログラムじゃないですが。
▼プログラムの一部
Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" ' 変数を定義します。
MyComp = StrComp(MyStr1, MyStr2, vbTextCompare) ' 0 (等しい)を返します。
MyComp = StrComp(MyStr1, MyStr2, vbBinaryCompare) ' -1(MyStr1がMyStr2未満。)を返します。
MyComp = StrComp(MyStr2, MyStr1, vbBinaryCompare) ' 1 を返します。
▼参考文献
かんたんプログラミング Excel2003 VBA コントロール・関数編
P235~P237 (5-4 文字列を比較する)
| 固定リンク
「マクロプログラム」カテゴリの記事
- 見出しマップの文字サイズを変更するマクロ(2009.09.05)
- 使用中の書式を検索するマクロ(2010.07.03)
- シンボルフォントを着色するマクロ(2010.06.04)
- 使用中の文字サイズ検出するマクロ(2010.05.01)
- テンプレートの編集マクロ(2010.04.25)

コメント