• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:InStr関数を使う際は)

InStr関数を使う際の比較モードとは?

このQ&Aのポイント
  • エクセルVBAでInStr関数を使う際には、どの比較モードを選べばいいのでしょうか?
  • InStr関数を使う際には、vbBinaryCompareとvbTextCompareの2つの比較モードを選択することができます。
  • vbBinaryCompareは、大文字と小文字を区別し、バイナリ比較を行います。一方、vbTextCompareは、大文字と小文字を区別せずにテキスト比較を行います。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.2

> 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以外で利用できるのを誤記しているのかもしれません。

trwnjengidn
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.3

訂正: 変数定義されていません ↓ vbUseCompareOption定数がシステムで定義されていません

trwnjengidn
質問者

お礼

ありがとうございました。

noname#212058
noname#212058
回答No.1

以下のページにそれぞれの意味が解説されています。 http://note.phyllo.net/?eid=1106064 vbDatabaseCompare は Access のみ使用可(Excel では使用不可)なのでエラーになります。 vbUseCompareOption を指定した場合は "Option Compare" の設定になりますが、これはデフォルトでは Binary モード(vbBinaryCompare)なので通常であれば使えるはずです。試しに手元の Excel 2010 で試したら動きました。本当に動かないですか?

trwnjengidn
質問者

お礼

ありがとうございました。

関連するQ&A