Gewusst wie: Verwenden von VBA und Regex

July 12

Verwenden Sie die VBScript-Klasse regulärer Ausdrücke, um Ihre VBA-Programme, um Sprachelemente für reguläre Ausdrücke ermöglichen. Reguläre Ausdrücke sind, dass Textmuster, die Ihnen helfen können, Suchen von Zeichenfolgen mit einer komplexen Syntax in Office-Dokumenten. Diese Zeichenfolgen enthalten e-Mail-Adressen, Telefonnummern und Textfelder mit bestimmten Kriterien, die Sie in einer Excel- oder Access-Datenbank definiert haben. Die spezielle Syntax für reguläre Ausdrücke finden Sie unter der Zytrax "Reguläre Ausdrücke" Web-Seite oder eine ähnliche Ressource. Achten Sie darauf, Ihre VBA-Programme testen, die auf vielen verschiedenen Eingabezeichenfolgen reguläre Ausdrücke verwenden, um sicherzustellen, dass Sie Ihre Muster für reguläre Ausdrücke richtig geschrieben haben.

Anweisungen

1 Öffnen Sie eine der Office-Anwendungen wie Word, Excel oder Access. Drücken Sie "Alt" und "F11" gleichzeitig die VBA Programmierumgebung eingeben und dann auf die "Insert" Menü-Überschrift. Klicken Sie auf das "Modul"-Element, um ein neues Fenster zur Eingabe von VBA-Programme erstellen.

2 Geben Sie die folgenden Anweisungen zum Erstellen eine Unterroutine, um reguläre Ausdrücke zu verwenden:

Sub RegularExpressionTester()EndSub

3 Geben Sie die folgende Anweisung vor der Anweisung "End Sub" Ihres Programms über VBScript regular Expression-Objekt erstellen. Diese Anweisung erstellt das Objekt, dessen Funktionen regulärer Ausdruck Suchvorgänge durchführen.

Set objRegExp = CreateObject("vbscript.regexp")4

Typ "objRegExp.Global = True" Wenn Sie Ihre regulären Ausdruck, der eine Zeichenfolge nur auf das erste Vorkommen der Zeichenfolge übereinstimmen möchten. Typ "objRegExp.Global = False" wollen Sie auf alle Vorkommen der Zeichenfolge übereinstimmen. Beispielsweise, wenn Sie die Suche nach der "bei" Zeichen in einer e-Mail-Adresse und wollen einfach nur die erste Instanz von diesem Zeichen zu finden, legen Sie "Global" auf "False."

5 Geben Sie "objRegExp.IgnoreCase=true", wenn Ihre regulären Ausdruck, groß-und Kleinschreibung berücksichtigt, wenn eine Zeichenfolge entsprechen soll. Legen Sie diese Eigenschaft auf false fest, wenn Sie die Zeichenfolge benötigen Sie suchen Muster eines regulären Ausdrucks übereinstimmen. Beispielsweise wenn Sie die e-Mail-Adressen die Groß-/Kleinschreibung nicht sind Validierung sind, legen Sie diese Eigenschaft auf "True."

6 Typ "objRegExp.Pattern=" und geben Sie dann das Muster des regulären Ausdrucks, die Sie mit einer Eingabezeichenfolge entsprechen möchten. Eine e-Mail-Adresse überprüfen Sie könnte beispielsweise Muster eines regulären Ausdrucks wie z. B. "[a-Z, A-Z]bei [a-Z, A-Z]. com." Dieses Muster gibt eine Zeichenfolge mit alphabetischen Zeichen vor und nach einer "bei" Symbol. Das Muster enthält auch die Domäne untergeordnete Zeichenfolge ". com. Beachten Sie, dass die echte e-Mail-Adressen komplexer als dieses vereinfachte Muster sein können.

7 Typ "Set RegExpMatches = objRegExp.Execute(strToSearch)" Muster des regulären Ausdrucks angewendet auf die Eingabezeichenfolge "StrToSearch." Beispielsweise Validierung e-Mail können Sie zuvor die Variable "StrToSearch" auf Text festgelegt haben, die Sie als e-Mail-Adresse überprüfen möchten. Eine Beispiel-Anweisung diese Variable gesetzt wird "StrToSearch ="[email protected]""

8 Typ "Wenn regExpMatches.Count = 0 then" zu testen, ob das RegExp-Objekt Text in der Eingabezeichenfolge abgestimmt. Wenn Ihre Eingabe von Text für das e-Mail-Validierung-Beispiel "[email protected]" war, wäre "Count" 1. Sie könnten dann schreiben Sie eine Anweisung, die darauf hinweist, dass der Text eine gültige Emailadresse war: "MsgBox ("dieser Zeichenfolge ist eine gültige Emailadresse.")".