VBA RegEx - Jak używać wyrażeń regularnych w VBA Excel? (Przykłady)

Co to jest wyrażenie regularne w programie Excel VBA?

RegEx oznacza „ Wyrażenie regularne ” w VBA Excel i jest sekwencją znaków, która definiuje wzorzec wyszukiwania w celu znalezienia określonego wzorca znaków w ciągu wartości. W prostym słowie „możemy utworzyć wzorzec wyrażenia regularnego i użyć go do wyszukania ciągu tego wzorca”.

VBA RegEx to model obiektowy. Wiem, że to onieśmielające, patrząc na wyjaśnienie, ale rzecz w tym, że chodzi o naturę przedmiotu. Jedną rzeczą, o której musisz pamiętać, jest to, że VBA RegEx (wyrażenie regularne) to obiekt funkcji tekstowej, podobnie jak nasze inne funkcje tekstowe, „LEFT, RIGHT, MID”.

Jak włączyć wyrażenie regularne w Excel VBA?

Jak powiedziałem VBA, RegEx jest modelem obiektowym w VBA, podobnie jak nasze zewnętrzne oprogramowanie, takie jak „MS Word” i „MS PowerPoint”. Podobnie RegEx jest również Component Object Model (COM), do którego musimy się odwołać w edytorze VBA. Aby włączyć wyrażenie regularne, wykonaj poniższe czynności.

Krok 1: Przejdź do Edytora Visual Basic (Alt + F11)

Krok 2: Przejdź do Narzędzia i referencje.

Krok 3: Teraz zobaczysz odniesienia do projektu VBA. Przewiń w dół i wybierz „Microsoft VBScript Regular Expression 5.5”.

Krok 4: Teraz kliknij OK. Możemy teraz uzyskać dostęp do tego obiektu RegEx w kodowaniu VBA.

Przykład - teraz pokażę jeden prosty przykład. Załóżmy, że masz słowa „Sprzedaż 2019, Sprzedaż 2018 i Sprzedaż 2017”. Jeśli zdefiniujesz wzorzec jako (0 - 7), dopasuje on wszystkie liczby od 0 do 7, więc nasze dopasowania będą miały wartość 201, 201 i 2017 w każdym ciągu.

VBA RegEx Pattern

Wzorzec funkcji VBA RegEx wygląda onieśmielająco i jego zrozumienie zajmuje trochę czasu. Widzimy tutaj dwa rodzaje sekwencji znaków, jeden to „Znaki dosłowne”, a drugi to „Metaznaki”.

  • Znaki literalne wyszukują dokładne dopasowanie podanego ciągu. Na przykład, dosłowny ciąg znaków „EFG” po prostu wyszukuje wszystkie dopasowania „EFG” w podanym tekście.
  • Metaznaki to nic innego jak kombinacja znaków o dokładnym znaczeniu we wzorcu RegEx. To zupełnie inne niż dosłowne postacie. To ogromny temat do omówienia. Poniżej znajduje się kilka ważnych składni.
Składnia Opis Przykład Przykładowe dopasowanie
. Dopasowuje dowolny pojedynczy znak ciągu wejściowego. pt Zwierzę domowe. Pot, Put, Pattern
() Dopasowuje dowolny pojedynczy znak między nawiasem w ciągu wejściowym. (pt) Pasuje do p lub t
(^) Dopasowuje dowolny pojedynczy znak, a nie między nawiasami w ciągu wejściowym. (pt) Nie pasuje ani do p ani t
(Pierwsza-ostatnia) Dopasowuje dowolny znak z zakresu podanego w nawiasie. (0-9) Pasuje do dowolnej cyfry od 0 do 9
(az) Dopasowuje wszystkie małe litery od a do z
(AZ) Pasuje do wszystkich wielkich liter od A do Z.
s Pasuje do dowolnego znaku odstępu. - Odpowiada spacji, nowej linii lub znaku tabulacji
S Pasuje do dowolnego znaku innego niż biały - Znaki dopasowania nie są spacjami, znakami nowego wiersza ani znakami tabulacji
e Pasuje do dowolnego znaku jednocyfrowego. SE 5 VG 6 Mecze 5 i 6
RE Dopasowuje dowolny pojedynczy znak niecyfrowy SE 5 VG 6 Pasuje do SEVG

Właściwości i metody obiektu RegEx

Podobnie jak wszystkie nasze modele obiektów, RegEx również ma swoje własne właściwości i metody. Teraz zobaczymy szczegółowo jeden po drugim.

Właściwości obiektu VBA Regex

  • Wzorzec: służy do dopasowania podanego ciągu.
  • Ignoruj ​​wielkość liter: służy do ignorowania wielkich i małych liter.
  • Globalny: jeśli chcesz znaleźć wszystkie dopasowania we wzorcu, argumentem jest PRAWDA, w przeciwnym razie zostanie znalezione pierwsze dopasowanie.
  • Wiele linii: jeśli chcesz znaleźć nowe podziały wierszy, możesz tego użyć.

Metody obiektu RegEx

  • Test: służy do sprawdzenia, czy wzorzec można znaleźć w podanym ciągu. To zwróci TRUE, jeśli zostanie znaleziony lub FALSE.
  • Wykonaj: Zwróci wszystkie dopasowania wzorca względem znalezionego ciągu.
  • Zastąp: Spowoduje to zastąpienie szukanego ciągu nowym ciągiem.

Przykład wyrażenia regularnego w VBA Excel

Teraz spójrz na poniższy przykładowy kod VBA.

Kod:

Sub RegEx_Example () Dim RegEx As Object, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Data urodzenia to 1985" MsgBox RegEx .Test (MyString) MyString = "Data urodzenia to ???" MsgBox RegEx.Test (MyString) End Sub

regularny

W powyższym kodzie ustawiliśmy wzorzec wyszukiwania liczby od 0 do 9 w następujący sposób.

Z wyrażeniem regularnym .Pattern = "(0-9) +" Zakończ na

Następnie zmienna MyString = „Data urodzenia to rok 1985”, która zawiera wartości od 0 do 9, więc nasze okno komunikatu zwróci wartość TRUE.

MyString = „Data urodzenia to ???” nie ma żadnych liczb od 0 do 9, więc zwróci FALSE jako wynik okien komunikatu.

Interesujące artykuły...