Visual Basic for Applications:
Korzystanie z wyrażeń regularnych

Jak używać:

Aby użyć wyrażeń regularnych w VBA, najpierw musisz włączyć bibliotekę Microsoft VBScript Regular Expressions. W edytorze VBA przejdź do Narzędzia -> Odniesienia, a następnie zaznacz Microsoft VBScript Regular Expressions 5.5.

Oto podstawowy przykład, jak znaleźć, czy wzorzec istnieje w ciągu znaków:

Sub FindPattern()
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")

    With regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' Szuka słowa "is"
    End With
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "Wzorzec znaleziony."
    Else
        MsgBox "Wzorzec nie znaleziony."
    End If
End Sub

Aby zastąpić wzorzec w ciągu znaków:

Sub ReplacePattern()
    Dim regex As Object, replacedString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' Dopasowuje dowolny biały znak
    End With
    
    replacedString = regex.Replace("This is a test string.", "_")
    MsgBox replacedString  ' Wyświetla: "This_is_a_test_string."
End Sub

Wnikliwe spojrzenie

Włączenie wyrażeń regularnych do języków programowania często sięga narzędzi Unix z lat 70. VBA zintegrowało regex przez bibliotekę VBScript Regular Expressions, podkreślając jego znaczenie w zadaniach przetwarzania tekstu, nawet w aplikacjach niezwiązanych typowo z intensywną manipulacją tekstem, takich jak Excel czy Access.

Pomimo ich mocy, regex w VBA może czasami być mniej intuicyjny lub wydajny w porównaniu z nowocześniejszymi implementacjami w językach takich jak Python czy JavaScript. Na przykład, moduł re w Pythonie oferuje obszerne wsparcie dla nazwanych grup i bardziej zaawansowanych funkcji dopasowywania wzorców, zapewniając czystsze i potencjalnie bardziej czytelne podejście. Jednakże, pracując w ekosystemie VBA, wyrażenia regularne pozostają nieocenionym narzędziem do zadań wymagających dopasowywania wzorców lub manipulowania tekstem. Kompromis wydajnościowy jest często znikomy w świetle wygody i możliwości, jakie regex przynosi do obsługi ciągów w aplikacjach Office.