VBA RegEx - Comment utiliser l'expression régulière dans VBA Excel? (Exemples)

Qu'est-ce que RegEx dans Excel VBA?

RegEx signifie « Expression régulière » dans VBA Excel et est une séquence de caractères qui définit le modèle de recherche pour trouver un modèle spécifique de caractères dans une chaîne de valeurs. En un mot, "nous pouvons créer un modèle d'expression régulière et l'utiliser pour rechercher la chaîne de ce modèle."

VBA RegEx est un modèle objet. Je sais que c'est intimidant en regardant l'explication, mais le fait est que la nature de l'objet. Une chose dont vous devez vous souvenir ici est que VBA RegEx (expression régulière) est un objet de fonction de texte comme nos autres fonctions de texte, «GAUCHE, DROITE, MOYEN».

Comment activer RegEx dans Excel VBA?

Comme je l'ai dit à VBA, RegEx est un modèle d'objet en VBA, tout comme nos logiciels externes tels que «MS Word» et «MS PowerPoint». De même, RegEx est également un modèle d'objet composant (COM), que nous devons référencer dans l'éditeur VBA. Pour activer RegEx, suivez les étapes ci-dessous.

Étape 1: accédez à Visual Basic Editor (Alt + F11)

Étape 2: Accédez à Outils et références.

Étape 3: Maintenant, vous verrez des références au projet VBA. Faites défiler vers le bas et sélectionnez «Microsoft VBScript Regular Expression 5.5».

Étape 4: Cliquez maintenant sur OK. Nous pouvons accéder à cet objet RegEx maintenant en codage VBA.

Exemple - Maintenant, je vais vous montrer un exemple simple. Supposons que vous ayez les mots «Ventes 2019, Ventes 2018 et Ventes 2017». Si vous définissez le modèle comme (0 - 7), il correspond à tous les nombres entre 0 et 7, donc nos correspondances seront 201, 201 et 2017 dans chaque chaîne.

Modèle RegEx VBA

Le modèle de la fonction VBA RegEx semble intimidant et prend un certain temps à comprendre le modèle. Nous pouvons voir deux types de séquence de caractères ici, l'un est «Caractères littéraux» et l'autre est «Métacaractères».

  • Les caractères littéraux recherchent la correspondance exacte de la chaîne fournie. Par exemple, la séquence de caractères littérale «EFG» recherche simplement toutes les correspondances de «EFG» dans le texte fourni.
  • Les métacaractères ne sont rien d'autre qu'une combinaison de caractères avec une signification exacte dans le modèle RegEx. Ceci est complètement différent des caractères littéraux. C'est un sujet énorme à couvrir. Voici quelques-unes des syntaxes importantes.
Syntaxe La description Exemple Exemple de correspondance
. Il correspond à n'importe quel caractère unique de la chaîne d'entrée. pt Animal de compagnie. Pot, mettre, modèle
() Il correspond à n'importe quel caractère unique entre le crochet d'une chaîne d'entrée. (pt) Il correspond à p ou t
(^) Il correspond à n'importe quel caractère unique, pas entre le crochet d'une chaîne d'entrée. (pt) Il ne correspond ni à p ni à t
(Premier Dernier) Il correspond à n'importe quel caractère entre la plage fournie dans le crochet. (0-9) Il correspond à n'importe quel chiffre de 0 à 9
(az) Il correspond à n'importe quel caractère minuscule de a à z
(AZ) Il correspond à n'importe quel caractère majuscule de A à Z
s Il correspond à n'importe quel caractère d'espace blanc. - Correspond au caractère d'espace, de nouvelle ligne ou de tabulation
S Il correspond à n'importe quel caractère sans espace blanc - Les caractères correspondants ne sont ni un espace, ni une nouvelle ligne, ni un caractère de tabulation
é Il correspond à n'importe quel caractère à un seul chiffre. SE 5 VG 6 Matchs 5 et 6
Il correspond à n'importe quel caractère unique sans chiffre SE 5 VG 6 Correspond à SEVG

Propriétés et méthodes de l'objet RegEx

Comme tous nos modèles d'objet, RegEx possède également ses propres propriétés et méthodes. Maintenant, nous allons voir un par un en détail.

Propriétés de l'objet VBA Regex

  • Pattern: Ceci est utilisé pour correspondre à la chaîne fournie.
  • Ignorer la casse: Ceci permet d'ignorer les majuscules et les minuscules.
  • Global: Si vous voulez trouver toutes les correspondances dans le modèle, alors TRUE est l'argument, sinon la première correspondance sera trouvée.
  • Multi-Line: Si vous souhaitez rechercher à travers de nouveaux sauts de ligne, vous pouvez l'utiliser.

Méthodes de l'objet RegEx

  • Test: Ceci permet de tester si le modèle peut être trouvé dans la chaîne fournie. Cela retournera TRUE si trouvé ou FALSE.
  • Exécuter: Cela retournera toutes les correspondances du modèle par rapport à la chaîne de recherche.
  • Remplacer: Cela remplacera la chaîne de recherche par la nouvelle chaîne.

Exemple de RegEx dans VBA Excel

Jetez maintenant un œil à l'exemple de code VBA ci-dessous.

Code:

Sub RegEx_Example () Dim RegEx As Object, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Date de naissance année est 1985" MsgBox RegEx .Test (MyString) MyString = "La date de naissance est ???" MsgBox RegEx.Test (MyString) End Sub

régulier

Dans le code ci-dessus, nous avons défini le modèle pour rechercher le nombre de 0 à 9 comme suit.

Avec RegEx .Pattern = "(0-9) +" Terminer par

Ensuite, la variable MyString = "Date of Birth year is 1985" contient les valeurs de 0 à 9, donc notre boîte de message retournera TRUE.

MyString = "La date de naissance est ???" n'a pas de nombres de 0 à 9, donc retournera FALSE comme résultat des boîtes de message.

Articles intéressants...