• ベストアンサー

()を含む文字列を検索

”()”を含む文字列を完全一致で検索したいのですが、 ()が条件として認識されません。 なにか良い手法はありますでしょうか? ちなみに、IF文で文字列一致を判断しています。

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

  • ベストアンサー
回答No.6

If StrComp(B(i), A, vbTextCompare) = 0 Then MsgBox i End If とStrComp関数を使って、比較をテキストモードにすれば一致とみなされます。

ddaaii
質問者

お礼

ありがとうございます。 If StrComp(B(i), A, vbTextCompare) = 0 Then MsgBox i End If の条件式に変更したことで解決いたしました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

noname#101441
noname#101441
回答No.5

Sub test B(1)="かきくけこ" B(2)="さしすせそ" B(3)="あいう(えお)" A="あいう(えお)" For i=1 to 3 if B(i)=A then MsgBox i End if Next End Sub #2の補足では、 これで認識できないということが言いたいのでしょうか? 文字列Aが"あいう(えお)"というように 全部全角であれば認識するように思います。 #4の方のいわれるように 半角と全角とでは認識しません。

ddaaii
質問者

補足

その通りです。 B(3)とAがイコールとなりません。 半角の"("を判断する情報が知りたいです。 "("または")"を"###"などに変換して 比較を考えております。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>文字列A:あいう(えお) >配列B:かきくけこ、さしすせそ、あいう(えお) 文字列Aの始めカッコは、半角です。 その他のカッコは全て全角になっているのでマッチしないのでしょう

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

下記をやってみてください。 Sub test01() s = "(あいう)" s1 = "おあいうえ" MsgBox InStr(s1, s) s1 = "お(あいう)えか" MsgBox InStr(s1, s) End Sub 最初のMsgboxは0---見つからない 第2のMsgboxは2---0以外で、見つかった。 こういうのはダメですか。 それとも(と)が、中身は何であっても、対になっているかどうか のチェックですか。 #2の補足も私には、わかりにくい。 色々ああでもない、こうでもないと言ってくれれば、後の回答者に質問の意味が伝わるでしょう。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

IF inStr(文字列, "(") < inStrRev(文字列, ")") Then MsgBox "含んでる!" End if

ddaaii
質問者

補足

質問の仕方が悪かったみたいです。 例) 文字列A:あいう(えお) 配列B:かきくけこ、さしすせそ、あいう(えお) が在り、配列B()と文字列AをIF文で比較します。 ※配列BをFor文で回しながら…。 その際に文字列Aに”()”が含まれていると、 配列Bの”あいう(えお)”とヒットしません。 何か解決策はありますでしょうか?

すると、全ての回答が全文表示されます。
  • Tonji_W
  • ベストアンサー率26% (36/136)
回答No.1

条件がわからないのですが、何を使って検索でしょう? "(***)"の様にダブルコーテーションで囲ってもだめですか?

すると、全ての回答が全文表示されます。

関連するQ&A