Suche mit Regular Expressions in VBA
18. März 2011
VBA kennt von sich aus keine Regulären Ausdrücke. Um einen ersten Einstieg in den Umgang mit Regulären Ausdrücken zu bekommen, gibt es unten ein Beispiel, wie man die Bibliothek verfügbar macht.
Über CreateObject erzeugt man das Objekt. Die Pattern Eigenschaft legt das Pattern für die Suche fest, hierbei werden üblicherweise Zeichenklassen verwendet, wie z.B. \w (siehe unten) oder \d für alle Zahlen, d.h. 0-9.
Der Vorteil von Regulären Ausdrücken liegt in den sehr umfassenden Möglichkeiten auch komplexe Suchen bzw. Prüfungen vorzunehmen. Ein übliches Beispiel ist die Prüfung der Gültigkeit von Emailadressen.
VBA:
-
Sub VBA_Suche_Mit_RegularExpression()
-
-
'sucht mit der Hilfe von Regulären Ausdrücken
-
'03-2011
-
'E.Bimczok http://profi-excel.de
-
-
Const myText As String = "Dieser Satz kein Verb"
-
-
Dim myRegEx As Object
-
-
Set myRegEx = CreateObject("VBScript.RegExp")
-
-
'\w alle Zahlen (0-9), Buchstaben (A-z) oder "_"
-
'+ mindestens einmal aber beliebig oft
-
myRegEx.Pattern = "\w+"
-
-
Set result = myRegEx.Execute(myText)
-
-
MsgBox result(0).Value 'Dieser
-
-
'Buchstabe "S", danach die oben beschriebene Klasse \w
-
myRegEx.Pattern = "S\w+"
-
-
Set result = myRegEx.Execute(myText)
-
-
MsgBox result(0).Value 'Satz
-
-
End Sub