VBAと正規表現について勉強している者です。
1 2以下の構造の場合,どういったコードになるか 3ご教授願えると幸いです。 4 5既存ファイルを開く 6 ↓ 7開いたファイルのA列を空白まで読み込む 8 ↓ 9読み込んだ中に,特定の文字がある場合, 10その文字のあった横一列を配列に入れる 11 ↓ 12新規ファイルを開く 13 ↓ 14横一列が入った配列を新規ファイルに書き込み 15 ↓ 16既存,新規ファイルを閉じる 17 18特定の文字は,(tar)(cab)(msi)が検索パターンです(検索対象はA列です)。 19 20正規表現自体をコードに落とした時の書き方自体があまり良く理解できていないので, 21ここのご教授もして頂けると大変有難いです。 22 23不足部分,質問があれば何でも仰ってください。 24 25以上,よろしくお願いいたします。 26 27 28Sub Sample() 29 Dim RE, strPattern As String, i As Long, msg As String, reMatch 30 Set RE = CreateObject("VBScript.RegExp") 31 strPattern = "*.(t|c|m)(a|s)(r|b|i)$" 32 With RE 33 .Pattern = strPattern 34 .IgnoreCase = True 35 .Global = True 36 For i = 1 To 10 37 Set reMatch = .Execute(Cells(i, 1)) 38 If reMatch.Count > 0 Then 39 msg = msg & reMatch(0).Value & vbCrLf 40 End If 41 Next i 42 End With 43 MsgBox msg 44 Set reMatch = Nothing 45 Set RE = Nothing 46End Sub 47 48上記のようなコードは, 49エラーになります。 50strPattern = "*.(t|c|m)(a|s)(r|b|i)$" 51が構文としておかしいと考えているのですが, 52直し方がよくわかりません。
「正規表現を使うこと」自体が目的に含まれていますでしょうか?
それともあくまで特定の文字列を判別できればよいのでしょうか?
正規表現を使いたいです。
出来ない場合は,他の方法でとは考えてはいますが,
できるならば,正規表現を使いたいです。
ありがとうございました。
「特定の文字は,(tar)(cab)(msi)が検索パターンです(検索対象はA列です)」がわかりません。A列のセルを順次調べ、この中に「tar」あるいは「cab」「msi」だったらメッセージを表示するのでしょうか?
それとも、セル内の末尾が「.tar」「.cab」「.msi」か調べるのでしょうか?
文字列の検索ルールを具体的に書いてください。