Visual Basic for Applications:
Utilizzo di espressioni regolari

Come fare:

Per utilizzare le espressioni regolari in VBA, è prima necessario abilitare la libreria Microsoft VBScript Regular Expressions. Nell’editor VBA, vai su Strumenti -> Riferimenti, quindi seleziona Microsoft VBScript Regular Expressions 5.5.

Ecco un esempio base per trovare se un modello esiste all’interno di una stringa:

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

    With regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' Cerca la parola "is"
    End With
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "Modello trovato."
    Else
        MsgBox "Modello non trovato."
    End If
End Sub

Per sostituire un modello in una stringa:

Sub ReplacePattern()
    Dim regex As Object, replacedString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' Corrisponde a qualsiasi carattere di spazio bianco
    End With
    
    replacedString = regex.Replace("This is a test string.", "_")
    MsgBox replacedString  ' Mostra: "This_is_a_test_string."
End Sub

Approfondimento

L’inclusione delle espressioni regolari nei linguaggi di programmazione spesso risale agli strumenti Unix degli anni ‘70. VBA ha integrato le regex tramite la libreria VBScript Regular Expressions, evidenziando la sua importanza nei compiti di elaborazione del testo anche in applicazioni non tipicamente associate alla manipolazione intensiva di testi come Excel o Access.

Nonostante la loro potenza, le regex in VBA a volte possono essere meno intuitive o performanti rispetto a implementazioni più moderne in linguaggi come Python o JavaScript. Ad esempio, il modulo re di Python offre un ampio supporto per gruppi nominati e funzionalità di corrispondenza di modelli più sofisticate, fornendo un approccio più pulito e potenzialmente più leggibile. Tuttavia, quando si lavora all’interno dell’ecosistema VBA, le espressioni regolari rimangono uno strumento inestimabile per compiti che richiedono corrispondenze di modelli o manipolazione del testo. Il compromesso sull’efficienza è spesso trascurabile alla luce della comodità e delle capacità che le regex portano alla tavola quando si tratta con stringhe nelle applicazioni Office.