文字列を比較するにはStrComp関数を使用します。StrComp関数は比較モードとしてバイナリモードとテキストモードがあります。
構文
記述方法は以下の通りとなります。
StrComp(”[文字列①]”,”[文字列②]”,[比較モード])
[説明]:
2つの文字列を指定した方法で比較し結果を返します。
[文字列①] | 比較する1つ目の任意の文字列を記述します。 ※「”」(ダブルクォーテーション)で囲みます。 |
[文字列②] | 比較する2つ目の任意の文字列を記述します。 ※「”」(ダブルクォーテーション)で囲みます。 |
[比較モード] | 比較するモードを記述します。 比較モードには以下2つがあります。 ・バイナリモード(vbBinaryCompare) 大文字/小文字・全角/半角・ひらがな/カタカナを区別して比較 ・テキストモード(vbTextCompare) 大文字/小文字・全角/半角・ひらがな/カタカナを区別せずに比較 |
StrComp関数は比較した結果を戻り値として返します。
戻り値の内容は以下の通りとなります。
戻り値 | 内容 |
0 | 比較した結果が一致した場合 |
1 又は -1 | 比較した結果が不一致の場合 |
[記述例]:
StrComp("ExcelVBA", "excelvba", vbTextCompare)
StrComp("ExcelVBA", "excelvba", vbBinaryCompare)
使い方
使い方について具体的に説明します。
バイナリモードで比較する方法
バイナリモードで比較する方法について説明します。
[プログラミング例]:
Sub サンプル()
MsgBox StrComp("ExcelVBA", "excelvba", vbBinaryCompare)
End Sub
「文字列”ExcelVBA”と文字列”excelvba”をテキストモードで比較し、結果の戻り値をMsgBoxで表示し下さい。」との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②処理結果は以下の様になります。バイナリモードでは大文字/小文字・全角/半角・ひらがな/カタカナの比較まで行うため、戻り値は「-1」となります。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
バイナリモードで2つの文字列を比較する方法についての説明は以上です。
テキストモードで比較する方法
テキストモードで比較する方法について説明します。
[プログラミング例]:
Sub サンプル()
MsgBox StrComp("ExcelVBA", "excelvba", vbTextCompare)
End Sub
「文字列”ExcelVBA”と文字列”excelvba”をテキストモードで比較し、結果の戻り値をMsgBoxで表示し下さい。」との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②処理結果は以下の様になります。 テキストモードでは大文字/小文字・全角/半角・ひらがな/カタカナの比較は行わないため、戻り値は「0」となります。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
テキストモードで2つの文字列を比較する方法についての説明は以上です。
プログラミング(サンプル)
プログラミング事例を紹介します。
おわりに
今回はStrComp関数を使用した2つの文字列を比較する方法について説明しました。上記の説明でも分かる通り、より厳密に比較したい場合にはバイナリモードでの比較が必要になります。状況により比較方法を使い分けて下さい。