VBA RegEx

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 bereits sagte, ist VBA 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 - Jetzt zeige ich Ihnen ein einfaches Beispiel. Angenommen, Sie haben die Wörter "Sales 2019, Sales 2018 und Sales 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 benötigt einige Zeit, um das Muster zu verstehen. Wir können hier zwei Arten einer Folge von Zeichen sehen, eine ist "Literal Characters" und eine andere ist "Metacharacters".

  • 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 werden einige wichtige Syntaxen aufgeführt.
SyntaxBeschreibungBeispielBeispiel Match
.Es stimmt mit jedem einzelnen Zeichen der Eingabezeichenfolge übereinptHaustier. 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.
\ sEs passt zu jedem Leerzeichen- -Entspricht dem Leerzeichen, der neuen Zeile oder dem Tabulatorzeichen
\ S.Es passt zu jedem Nicht-Leerzeichen- -Übereinstimmende Zeichen sind kein Leerzeichen, keine neue Zeile oder kein Tabulatorzeichen
\ dEs entspricht jedem einstelligen ZeichenSE 5 VG 6Übereinstimmungen 5 und 6
\ D.Es entspricht jedem einzelnen nichtstelligen ZeichenSE 5 VG 6Entspricht SEVG

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 neue Zeilenumbrüche 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.

Sie können diese VBA RegEx Excel-Vorlage hier herunterladen - VBA RegEx Excel-Vorlage

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

fregular

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 und gibt daher FALSE zurück, wenn die Meldungsfelder angezeigt werden.