
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA 1 2023/04/27 13:37
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
文字列内で括弧を使うには
Visual Basic(VBA)
-
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
実行時エラー93 パターン文字列が不正です
Access(アクセス)
-
-
4
VBAでの[]
Visual Basic(VBA)
-
5
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
6
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
7
文字列の括弧について(初心者)
Visual Basic(VBA)
-
8
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
9
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
10
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
バッチファイルの正規表現を利...
-
正規表現の否定先読みで、複数...
-
正規表現のAND条件記述手法
-
「abcで始まらない」を正規表現...
-
角カッコが含まれてるかどうか...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
CString型からdouble型への変換
-
EXCELからCSVにすると余計なカ...
-
C#で、テキストボックスの入力...
-
Excelについて質問です。 セル...
-
住宅にカナを入力する際に丁目...
-
CSVの定義
-
CString から LPCTSTRの型に変換
-
WORDで改ページすると時々グレ...
-
英数字のみ全角から半角に変換
-
C#で空白行を削除する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
角カッコが含まれてるかどうか...
-
VBA EXCEL あるセルの中の一...
-
正規表現の否定先読みで、複数...
-
バッチファイルの正規表現を利...
-
「abcで始まらない」を正規表現...
-
正規表現 英数字を1つ以上含む...
-
最短一致の使い方
-
正規表現に当てはまる文字列を...
-
英数字混じり8文字以上の正規表現
-
正規表現で、ある文末に不一致...
-
CSVのRegexでの分割
-
文字列から数値を抽出したいの...
-
拡張子の正規表現
-
入力された文字列が、LD22000を...
-
XML::Xpathで部分一致検索をす...
-
【abc】に【完全一致】する正規...
-
正規表現の 「?」 の使い方に...
-
ASP言語での正規表現の書き方
-
CSVファイルの中で、「 , 」カ...
おすすめ情報