私は VBA に少し慣れていないので、このトピックについてフォーラムを検索してみましたが、検索に正しい単語を使用したかどうかわかりません。これが私の質問です:
VBA を使用して、不足している情報を正規表現で抽出しています。電話番号とファックス番号を含むテキストを含むテーブルがあるとします。数値を表にまとめたいと思います。これまでのところ、私が持っているコードは問題なく動作しますが、何らかの理由で複数の番号 (通常の番号と 800 # など) がある場合、1 つの番号のみが取得され、他の番号は取得されません。すべての結果をテーブルに追加するにはどうすればよいですか?
クエリ:
SELECT regxtr([Table1]![field1]) AS phone FROM Table1;
(regxtr)関数のVBAコード:
Option Compare Database
Function regxtr(ByVal Target As String) As String 'Target is the field we are 'extracting from
Dim re As New RegExp
Dim oMatches As Object
Dim oMatch As Object
Dim n As Long
n = 0
'Set re = CreateObject("vbscript.regexp")
With re
.Global = True
.IgnoreCase = True
.Multiline = True
.Pattern = "(\d\d\d.\d\d\d\.\d\d\d\d)" 'keeping the pattern simple for now just to test
End With
'test before executing
If re.Test(Target) = True Then
Set oMatches = re.Execute(Target)
'attempt to get all matches. THIS IS WHERE I AM FAILING
For n = 0 To oMatches.Count - 1
Set oMatch = oMatches(n)
regxtr = oMatch.Value
n = n + 1 ' does this even belong here?
Next
End If
End Function
すべての一致がクエリのフィールド [電話] に入力されるようにするにはどうすればよいですか? どんな助けでも大歓迎です。