Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8264 / 13644 ツリー ←次へ | 前へ→

【34341】VBScript.RegExpについて わんだ 06/1/31(火) 22:52 質問[未読]
【34342】Re:VBScript.RegExpについて Blue 06/1/31(火) 23:59 回答[未読]

【34341】VBScript.RegExpについて
質問  わんだ  - 06/1/31(火) 22:52 -

引用なし
パスワード
   以下のようなコードにおきまして、このような一行は可能でしょうか? 
  
  リスト.Pattern = 可変リスト

(つまり、検索したいものが変わるので)

よろしくお願いいたします。


Function TEST(rng As Range) As Variant

For i= 1 To 3
    可変リスト = 可変リスト & "(" & rng.Cells(i).Value-2 & ")"
  Next i

Dim リスト As String
  Set リスト = CreateObject("VBScript.RegExp")

  リスト.IgnoreCase = True
  リスト.Global = True
  リスト.Pattern = 可変リスト
End Function

【34342】Re:VBScript.RegExpについて
回答  Blue  - 06/1/31(火) 23:59 -

引用なし
パスワード
   可変リストってのがどんなのかよくわかりませんが、

| で区切っていけばよいのでは?

一例)
Private Sub Test()
  Dim text  As String
  Dim lst() As String
  Dim ret  As Object
  Dim i   As Long
  
  text = "This is a pen." ' 検索対象
  
  ReDim lst(1)
  lst(0) = "is"
  lst(1) = "pen"
  
  With CreateObject("VBScript.RegExp")
    .IgnoreCase = True
    .Global = True
    .Pattern = Join(lst, "|") ' | で連結(JoinはExcel2000より)
    Set ret = .Execute(text)
    For i = 0 To ret.Count - 1
      Debug.Print ret(i)
    Next
    Set ret = Nothing
  End With
End Sub

8264 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free