VBA RegEx

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 simple «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 «LEFT, RIGHT, MID».

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 comme «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: Vous verrez maintenant 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 - Je vais maintenant 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.
SyntaxeLa descriptionExempleExemple de correspondance
.Il correspond à n'importe quel caractère unique de la chaîne d'entréeptAnimal 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 à tout caractère minuscule de a à z
[AZ]Il correspond à n'importe quel caractère majuscule de A à Z
\ sIl correspond à n'importe quel caractère d'espace blanc-Correspond au caractère d'espace, de nouvelle ligne ou de tabulation
\ SIl correspond à n'importe quel caractère non blanc-Les caractères correspondants ne sont ni un espace, ni une nouvelle ligne, ni un caractère de tabulation
\réIl correspond à n'importe quel caractère à un chiffreSE 5 VG 6Matchs 5 et 6
\RÉIl correspond à n'importe quel caractère non chiffréSE 5 VG 6Correspond à 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: Cela permet d'ignorer les majuscules et les minuscules.
  • Global: Si vous voulez trouver toutes les correspondances dans le modèle, TRUE est l'argument, sinon la première correspondance sera trouvée.
  • Multi-Line: Si vous souhaitez trouver à 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 renverra TRUE s'il est 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.

Vous pouvez télécharger ce modèle Excel VBA RegEx ici - Modèle Excel VBA RegEx

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

irré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" qui 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.