No.5ベストアンサー
- 回答日時:
#1、2、cjです。
パターンマッチングのお話だと思い、お応えしているのですが、、、。
ちょっと片手落ちだった気もするので、一応補足を加えます。
If mystr Like "*[[]*]*" Then
のように書けば、[と]の組み合わせを同時にマッチングできます。
各種の正規表現やExcel一般機能(関数等)には
メタ文字(Like演算子の角括弧のように意味を持つ特殊文字)を
文字列比較する為にエスケープ文字(^や\や~を特殊文字の前に付加)が用意されていますが、
Like演算子の場合はエスケープ文字がありません。
(これ↑、はっきり書いた方が良かったですね)
#2で引用したVBAヘルプのメモのように、
エスケープする為に角括弧[]で括る必要があります。
正規表現などに比べればマッチングが制限されているのも確かです。
特長を示す例としては
If mystr Like "*[[]t*]*" Then
のように判別することで、
mystr = "[test]" なら マッチするのでTrue
mystr = "[rest]" や
mystr = "[test" や
mystr = "test]" 等なら マッチしないのでFalse
というような使い方をします。
ただLike演算子のパターンマッチングは万能ではありませんから、
場合によっては正規表現(VBAの場合はVBScriptのRegExp)を用いて
より精度の高いパターンマッチングが求められるケースもあることでしょう。
"角カッコが含まれてるかどうか"
だけ、を限定的な意味で捉えれば、それは検索ですから、
InStr関数を使って、戻り値が[0でない場合、0である場合]
といった具合に判別するのは、非常に優れた検索方法です。
目的に適うツールを選べるように、
基本的なことは色々知っておいた方がいい、ということになるのでしょうか。
No.3
- 回答日時:
こんにちは、likeでは回答が出ておりますので
>こういうように各カッコが含まれてるかどうかを取得するにはどうすればいいですか?
InStr 関数を使った方法です。参考に
mystr = "[test]"
If InStr(mystr, "[") Then
MsgBox "[が含まれます"
End If
No.2
- 回答日時:
#1、cjです。
追加レスです。VBAヘルプの Like演算子を引くと、正にご質問への答えが説明されていました。
以下VBAヘルプより引用(改行は筆者)
|メモ 特殊文字の左角かっこ ([)、疑問符 (?)、数値記号 (#)、およびアスタリスク (*) を
|文字列比較するには、これらの文字を角かっこで囲みます。
|右角かっこ (]) をワイルドカードとしてではなくその文字自体として文字列比較を行うときには、
|右角かっこを他の文字と共に角かっこで囲んでリストの中に指定することはできません。
|右角かっこは、文字のリストに入れずに単独で指定すると、
|独立した文字として、文字列の中の文字と比較できます。
以上引用
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
文字列内で括弧を使うには
Visual Basic(VBA)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
VBAでの[]
Visual Basic(VBA)
-
5
実行時エラー93 パターン文字列が不正です
Access(アクセス)
-
6
ExcelVba 有効なセルかどうかを判定するには
Visual Basic(VBA)
-
7
配列で格納したものをmsgboxで表示する方法について
Access(アクセス)
-
8
値の貼り付けをするVBA
Excel(エクセル)
-
9
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA EXCEL あるセルの中の一...
-
角カッコが含まれてるかどうか...
-
「何とかで始まり、何とかで終...
-
スペースで区切られた氏名から...
-
[VBScript]バイト長の判定
-
半角・全角の由来
-
エクセルにMicrosoft Barcode C...
-
Excelの中に全角ひらがな、漢字...
-
数字を文字列に変換し短縮化する
-
住宅にカナを入力する際に丁目...
-
文字列を quoted-printable 文...
-
UWSC教えて
-
VBAでシングルクオート(8217)を...
-
Excel・ユーザーフォームの情報...
-
全角英数字を半角英数字に変換...
-
エクセルの認識機能 VLOOKUP関数
-
特定の列のみ置換を行いたい
-
各項目がダブルクォーテーショ...
-
VBScript 日付の比較について
-
エクセルで数値を全角文字(カ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
正規表現の否定先読みで、複数...
-
角カッコが含まれてるかどうか...
-
「abcで始まらない」を正規表現...
-
正規表現 英数字を1つ以上含む...
-
バッチファイルの正規表現を利...
-
長い文字列から特定の数字を取...
-
入力された文字列が、LD22000を...
-
文字列から数値を抽出したいの...
-
【abc】に【完全一致】する正規...
-
VBにおける文字列の部分一致検索
-
正規表現で、ある文末に不一致...
-
正規表現について
-
javaの正規表現について
-
英字の大文字小文字および混在...
-
正規表現で
-
拡張子の正規表現
-
正規表現 指定文字列以外の記述法
-
Perl CSVファイルの複数条件で...
おすすめ情報