大文字/小文字、全角/半角、ひらがな/カタカナを区別しません。「ACCESS」と「Access」と「ACCESS」を等しいとみなします。「アクセス」と「あくせす」も等しいとみなします。これらを別と判断してほしい場合もあるでしょう。その場合の対処法を紹介します。完全に一致するかどうかを比較するときは、StrComp関数が使えます。])第3引数(compare)で、文字列比較のモードを指定できます。指定すればバイナリモードの比較になり、小文字、全角/半角、ひらがな/カタカナを区別して比較します。0)クリエの抽出条件にするには、下図のように演算フィールドを作成して抽出条件に0を設定します。SQLでは、下記のようになります。0)=0;これでAccessのみ抽出されて、"ACCESS"や"Access"は抽出されません。"*Access*"というように指定すると、"ACCESS"や"Access"を含むデータも抽出されます。ここで"Access"のみ抽出したい場合、InStr関数を使います。])第4引数で文字列比較モードを設定します。指定するとバイナリモードの比較になります。1以上の数が返ります。0)クエリの抽出条件での設定は下図のようになります。抽出条件に>0を設定します。下記のようになります。"Access*"と設定する条件です。先頭部分が一致するデータを抽出します。これをバイナリモードでの比較にするには、上記の部分一致の場合の抽出条件欄の式を>0から=1に変更するだけです。下記のようになります。"*Access"と設定する条件です。後方部分が一致するデータを抽出します。これをバイナリモードの比較にするには、クエリで下記のように設定します。下記のようになります。StrComp(Right([フィールド1],Len("Access")),"Access",0)=0;Like演算子代替ユーザー定義関数を作成する上記のように関数を組み合わせれば、バイナリモードでの比較は可能ですが、結構面倒です。Like演算子で可能なもう少し複雑な文字列比較をバイナリモードで行いたい、という場合もあるでしょう。なるとユーザー定義関数を作成することになります。VBAの場合は、モジュール単位で文字列の比較モードを宣言することができます。これを使うと簡単な関数でできます。ユーザー定義関数の作成まず、標準モジュールを新規作成します。先頭に既に2行宣言文がありますがそれを削除して、下記のコードをコピーして貼り付けます。Functionメニューの[デバッグ]-[〇〇〇のデバッグ]をクリックします。してOKをクリックします。部分はプロジェクト名です。これでこの関数がクエリやテキストボックスのコントロールソース、また、VBAコード内で使用できるようになります。使用例クエリで部分一致の条件にしたい場合は、クエリで下記のように設定します。"*Access*")抽出条件TrueSQLなら、下記のようになります。"*Access*")というように変更するだけです。使えますし、[]で囲んだ文字のリストも使用できます。Like演算子とまったく同じように使えます。違いはバイナリモードに比較になるということだけです。Like演算子の詳細は下記をご参照ください。宣言してますので、このモジュール内の関数での演算子によるテキスト比較はすべてバイナリモードになります。バイナリモードで比較したい処理がある場合は、このモジュールに放り込んでおくといいでしょう。まとめクエリでの文字列比較はテキストモードになり、それを変更するオプションもないので、大文字/小文字、全角/半角、ひらがな/カタカナを区別する比較は通常はできません。ついて、バイナリモードでの比較を実現する方法を紹介しました。Like演算子と同様の文字列比較がバイナリーモードで可能なユーザー定義関数を紹介しました。ユーザー定義関数は初心者の方でもコピペするだけで簡単に使用できますので、バイナリーモードでの比較が必要なときはぜひご利用ください。「タイトルの症状が発生します、対象法はないでしょうか。...VBAで変数宣言をまだプロシージャの先頭にまとめてしてますか?hatenaも1年前までは変数をプロシージャの先頭にまとめて記述してました。コメントをキャンセルメールアドレスが公開されることはありません。