Seltsam: Ich habe Deinen Code hier in einen Agenten kopiert, und da kommt "gefunden"...
Und hiermit komme ich sogar an die einzelnen Matches ran:
Dim strVorlagentext As String
Dim pattern As String
Dim regex As Variant
Dim match As Variant
Dim matches As Variant
strVorlagentext = "Dies ist ein Test. Funktioniert leider zu 0%. %Test123% Fertig %UndNochEiner%."
pattern = |%(\w+)%|
Set regex = CreateObject("VBScript.Regexp")
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = pattern
Set matches = regex.Execute(strVorlagentext)
If matches.Count >0 Then
ForAll objMatch In matches
MessageBox objMatch.Value
End ForAll
MessageBox ("Gefunden!")
Else
MessageBox ("nicht gefunden")
End If