VBA RegEx - Wie verwende ich reguläre Ausdrücke in VBA Excel? (Beispiele)

Inhaltsverzeichnis

Was ist RegEx in Excel VBA?

RegEx steht in VBA Excel für " Regular Expression " und ist eine Folge von Zeichen, die das Suchmuster zum Suchen eines bestimmten Zeichenmusters in einer Zeichenfolge definiert. Mit einem einfachen Wort: "Wir können ein Muster für reguläre Ausdrücke erstellen und damit nach der Zeichenfolge dieses Musters suchen."

VBA RegEx ist ein Objektmodell. Ich weiß, dass es einschüchternd ist, wenn man sich die Erklärung ansieht, aber die Sache ist, dass die Natur des Objekts. Eine Sache, an die Sie sich hier erinnern müssen, ist, dass VBA RegEx (Regular Expression) ein Textfunktionsobjekt ist, wie unsere anderen Textfunktionen "LEFT, RIGHT, MID".

Wie aktiviere ich RegEx in Excel VBA?

Wie ich VBA sagte, ist RegEx ein Objektmodell in VBA, genau wie unsere externe Software wie "MS Word" und "MS PowerPoint". In ähnlicher Weise ist RegEx auch ein Component Object Model (COM), auf das wir im VBA-Editor verweisen müssen. Führen Sie die folgenden Schritte aus, um RegEx zu aktivieren.

Schritt 1: Wechseln Sie zum Visual Basic-Editor (Alt + F11).

Schritt 2: Gehen Sie zu Tools und Referenzen.

Schritt 3: Jetzt sehen Sie Verweise auf das VBA-Projekt. Scrollen Sie nach unten und wählen Sie "Microsoft VBScript Regular Expression 5.5".

Schritt 4: Klicken Sie nun auf OK. Wir können jetzt in VBA-Codierung auf dieses RegEx-Objekt zugreifen.

Beispiel - Nun zeige ich Ihnen ein einfaches Beispiel. Angenommen, Sie haben die Wörter "Verkäufe 2019, Verkäufe 2018 und Verkäufe 2017". Wenn Sie das Muster als (0 - 7) definieren, stimmt es mit allen Zahlen zwischen 0 und 7 überein, sodass unsere Übereinstimmungen in jeder Zeichenfolge 201, 201 und 2017 sind.

VBA RegEx-Muster

Das Muster der VBA RegEx-Funktion sieht einschüchternd aus und es dauert einige Zeit, bis das Muster verstanden ist. Wir können hier zwei Arten einer Folge von Zeichen sehen, eine ist "wörtliche Zeichen" und eine andere ist "Metazeichen".

  • Literalzeichen suchen nach der genauen Übereinstimmung der angegebenen Zeichenfolge. Beispielsweise sucht die Literalzeichenfolge "EFG" einfach nach allen Übereinstimmungen von "EFG" im bereitgestellten Text.
  • Metazeichen sind nichts anderes als eine Kombination von Zeichen mit genauer Bedeutung im RegEx-Muster. Dies ist völlig anders als wörtliche Zeichen. Es ist ein großes Thema. Im Folgenden finden Sie einige wichtige Syntaxen.
Syntax Beschreibung Beispiel Beispiel Match
. Es stimmt mit jedem einzelnen Zeichen der Eingabezeichenfolge überein. pt Haustier. Topf, Put, Muster
() Es stimmt mit jedem einzelnen Zeichen in der Klammer einer Eingabezeichenfolge überein. (pt) Es stimmt entweder mit p oder t überein
(^) Es stimmt mit einem einzelnen Zeichen überein, nicht zwischen der Klammer einer Eingabezeichenfolge. (pt) Es stimmt weder mit p noch mit t überein
(Vorletzter) Es stimmt mit jedem Zeichen zwischen dem in der Klammer angegebenen Bereich überein. (0-9) Es entspricht einer beliebigen Ziffer von 0 bis 9
(az) Es entspricht jedem Kleinbuchstaben von a bis z
(AZ) Es entspricht jedem Großbuchstaben von A bis Z.
s Es passt zu jedem Leerzeichen. - - Entspricht dem Leerzeichen, der neuen Zeile oder dem Tabulatorzeichen
S. Es entspricht jedem Nicht-Leerzeichen - - Übereinstimmende Zeichen sind kein Leerzeichen, keine neue Zeile oder kein Tabulatorzeichen
d Es entspricht jedem einstelligen Zeichen. SE 5 VG 6 Übereinstimmungen 5 und 6
D. Es stimmt mit jedem einzelnen nichtstelligen Zeichen überein SE 5 VG 6 Stimmt mit SEVG überein

Eigenschaften und Methoden des RegEx-Objekts

Wie alle unsere Objektmodelle verfügt auch RegEx über eigene Eigenschaften und Methoden. Jetzt werden wir eins nach dem anderen im Detail sehen.

Eigenschaften des VBA-Regex-Objekts

  • Muster: Hiermit wird die angegebene Zeichenfolge abgeglichen.
  • Groß- und Kleinschreibung ignorieren: Hiermit werden Groß- und Kleinbuchstaben ignoriert.
  • Global: Wenn Sie alle Übereinstimmungen im Muster finden möchten, ist TRUE das Argument. Andernfalls wird die erste Übereinstimmung gefunden.
  • Mehrzeilig: Wenn Sie über neue Zeilenumbrüche hinweg suchen möchten, können Sie diese verwenden.

Methoden des RegEx-Objekts

  • Test: Hiermit testen Sie, ob das Muster in der angegebenen Zeichenfolge gefunden werden kann. Dies gibt TRUE zurück, wenn es gefunden wird, oder FALSE.
  • Ausführen: Dies gibt alle Übereinstimmungen des Musters mit der Suchzeichenfolge zurück.
  • Ersetzen: Dadurch wird die Suchzeichenfolge durch die neue Zeichenfolge ersetzt.

Beispiel für RegEx in VBA Excel

Schauen Sie sich nun den folgenden Beispiel-VBA-Code an.

Code:

Sub RegEx_Example () Dim RegEx als Objekt, MyString als Zeichenfolge Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Geburtsdatum ist 1985" MsgBox RegEx .Test (MyString) MyString = "Geburtsdatum ist ???" MsgBox RegEx.Test (MyString) End Sub

regulär

Im obigen Code haben wir das Muster so eingestellt, dass die Zahl von 0 bis 9 wie folgt gesucht wird.

Mit RegEx .Pattern = "(0-9) +" End With

Dann enthält die Variable MyString = "Geburtsdatum ist 1985" die Werte von 0 bis 9, sodass unser Meldungsfeld TRUE zurückgibt.

MyString = "Geburtsdatum ist ???" hat keine Zahlen von 0 bis 9, gibt also FALSE zurück, wenn sich die Meldungsfelder ergeben.

Interessante Beiträge...