Visual Basic for Applications:
Reguliere expressies gebruiken

Hoe te:

Om reguliere expressies in VBA te gebruiken, moet je eerst de Microsoft VBScript Regular Expressions-bibliotheek inschakelen. Ga in de VBA-editor naar Extra -> Referenties, en vink Microsoft VBScript Regular Expressions 5.5 aan.

Hier is een basisvoorbeeld om te vinden of een patroon in een string bestaat:

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

    Met regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' Zoekt naar het woord "is"
    Einde Met
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "Patroon gevonden."
    Else
        MsgBox "Patroon niet gevonden."
    End If
End Sub

Om een patroon in een string te vervangen:

Sub VervangPatroon()
    Dim regex As Object, vervangenString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    Met regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' Komt overeen met elk witruimtekarakter
    Einde Met
    
    vervangenString = regex.Replace("This is a test string.", "_")
    MsgBox vervangenString  ' Resultaat: "This_is_a_test_string."
End Sub

Diepgaande verkenning

De opname van reguliere expressies in programmeertalen gaat vaak terug op Unix-tools uit de jaren 70. VBA integreerde regex via de VBScript Regular Expressions-bibliotheek, wat het belang ervan in tekstopdrachten benadrukt, zelfs in applicaties die meestal niet geassocieerd worden met intensieve tekstmanipulatie zoals Excel of Access.

Ondanks hun kracht kunnen regex in VBA soms minder intuïtief of performant zijn in vergelijking met modernere implementaties in talen zoals Python of JavaScript. Bijvoorbeeld, Python’s re module biedt uitgebreide ondersteuning voor benoemde groepen en meer geavanceerde patroon-matchingsfuncties, wat een schonere en potentieel beter leesbare benadering biedt. Echter, wanneer men werkt binnen het VBA-ecosysteem, blijven reguliere expressies een onschatbare tool voor taken die patroonherkenning of tekstmanipulatie vereisen. Het efficiëntieverlies is vaak verwaarloosbaar in het licht van het gemak en de mogelijkheden die regex biedt bij het omgaan met strings in Office-applicaties.