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.