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.
