Visual Basic for Applications:
Utilisation des expressions régulières
Comment faire :
Pour utiliser les expressions régulières dans VBA, vous devez d’abord activer la bibliothèque Microsoft VBScript Regular Expressions. Dans l’éditeur VBA, allez dans Outils
-> Références
, puis cochez Microsoft VBScript Regular Expressions 5.5
.
Voici un exemple basique pour trouver si un motif existe dans une chaîne :
Sub FindPattern()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = True
.Pattern = "\bis\b" ' Cherche le mot "is"
End With
Dim testString As String
testString = "This is a test string."
If regex.Test(testString) Then
MsgBox "Motif trouvé."
Else
MsgBox "Motif non trouvé."
End If
End Sub
Pour remplacer un motif dans une chaîne :
Sub ReplacePattern()
Dim regex As Object, replacedString As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = False
.Pattern = "\s" ' Correspond à tout caractère d'espace blanc
End With
replacedString = regex.Replace("This is a test string.", "_")
MsgBox replacedString ' Sortie : "This_is_a_test_string."
End Sub
Approfondissement
L’inclusion des expressions régulières dans les langages de programmation remonte souvent aux outils Unix des années 1970. VBA a intégré les regex grâce à la bibliothèque VBScript Regular Expressions, soulignant son importance dans les tâches de traitement de texte même dans des applications non typiquement associées à une manipulation de texte lourde comme Excel ou Access.
Malgré leur puissance, les regex dans VBA peuvent parfois être moins intuitives ou performantes par rapport à des implémentations plus modernes dans des langages tels que Python ou JavaScript. Par exemple, le module re
de Python offre un support étendu pour les groupes nommés et des fonctionnalités de correspondance de motifs plus sophistiquées, fournissant une approche plus propre et potentiellement plus lisible. Cependant, lorsqu’on travaille dans l’écosystème VBA, les expressions régulières restent un outil inestimable pour les tâches nécessitant une correspondance de motifs ou une manipulation de texte. Le compromis en termes d’efficacité est souvent négligeable au vu de la commodité et des capacités que les regex apportent à la table lorsqu’il s’agit de gérer des chaînes dans les applications Office.