
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も見ています
-
文字列内で括弧を使うには
Visual Basic(VBA)
-
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
-
4
実行時エラー93 パターン文字列が不正です
Access(アクセス)
-
5
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
8
VBAでの[]
Visual Basic(VBA)
-
9
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
10
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
11
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現 英数字を1つ以上含む...
-
VBA EXCEL あるセルの中の一...
-
「何とかで始まり、何とかで終...
-
Perlの壁
-
角カッコが含まれてるかどうか...
-
|。ってなんですか? 正規表現
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
Excelについて質問です。 セル...
-
正規表現で、特定の文字列を含...
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
CSVの定義
-
マクロを使ってフォルダー内に...
-
csvデータのダブルクォーテーシ...
-
EXCELからCSVにすると余計なカ...
-
[VBA][Excel]クリップボードか...
-
CString から LPCTSTRの型に変換
-
VBA 置換文字がみつからない時
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
正規表現の否定先読みで、複数...
-
VBA EXCEL あるセルの中の一...
-
角カッコが含まれてるかどうか...
-
Perlで一行で文字列の置き換え
-
「abcで始まらない」を正規表現...
-
正規表現 英数字を1つ以上含む...
-
文字列の一致について
-
浮動小数点数について
-
名前の重複チェック
-
正規表現での置換
-
マクロ・VB得意な人へ。指定し...
-
文字列検索のAND条件を引数にし...
-
一度だけ置換えたい
-
Perlの壁
-
バッチファイルの正規表現を利...
-
正規表現のパターンマッチ
-
|。ってなんですか? 正規表現
-
.htaccessで特定のドメインを弾...
-
Excelにある特定のRange名があ...
おすすめ情報