- ベストアンサー
InStr関数を使う際の比較モードとは?
- エクセルVBAでInStr関数を使う際には、どの比較モードを選べばいいのでしょうか?
- InStr関数を使う際には、vbBinaryCompareとvbTextCompareの2つの比較モードを選択することができます。
- vbBinaryCompareは、大文字と小文字を区別し、バイナリ比較を行います。一方、vbTextCompareは、大文字と小文字を区別せずにテキスト比較を行います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> vbBinaryCompareとvbTextCompareならエラーになりませんが > この二つの違いが判りません。 vbBinaryCompare 大文字と小文字が区別されます。 vbTextCompare 大文字と小文字は区別されませんし、ひらがなカタカナも区別されません。 sub test() Dim myStr As String myStr = "abcd" Debug.Print InStr(1, myStr, "A", vbBinaryCompare) Debug.Print InStr(1, myStr, "A", vbTextCompare) myStr = "あいうえお" Debug.Print InStr(1, myStr, "い", vbBinaryCompare) Debug.Print InStr(1, myStr, "イ", vbBinaryCompare) Debug.Print InStr(1, myStr, "イ", vbTextCompare) end sub vbUseCompareOption Option Compare Text もしくは Option Compare Binary 上記の指定をプロシージャ外で指定して利用するようなりますが、実際変数定義されていませんのでエラーになります。VBA以外で利用できるのを誤記しているのかもしれません。
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1742/2617)
訂正: 変数定義されていません ↓ vbUseCompareOption定数がシステムで定義されていません
お礼
ありがとうございました。
以下のページにそれぞれの意味が解説されています。 http://note.phyllo.net/?eid=1106064 vbDatabaseCompare は Access のみ使用可(Excel では使用不可)なのでエラーになります。 vbUseCompareOption を指定した場合は "Option Compare" の設定になりますが、これはデフォルトでは Binary モード(vbBinaryCompare)なので通常であれば使えるはずです。試しに手元の Excel 2010 で試したら動きました。本当に動かないですか?
お礼
ありがとうございました。
お礼
ありがとうございました。