En VBA, vous pouvez comparer deux chaînes en utilisant le Comme opérateur pour vérifier la correspondance des chaînes. Dans ce tutoriel, vous apprendrez à utiliser cet opérateur avec différents modèles.
Si vous voulez apprendre à comparer des chaînes en VBA, cliquez ici : VBA Compare Strings - StrComp
Si vous souhaitez apprendre à utiliser les opérateurs de comparaison, cliquez ici : Opérateurs de comparaison VBA - Pas égaux à et plus
Utilisation de l'opérateur Like pour comparer deux chaînes
Avec l'opérateur Like, nous pouvons vérifier si une chaîne commence par un texte spécifique, l'inclut, etc. Par défaut, le Comme L'opérateur compare les caractères à l'aide de la méthode Binary. Cela signifie que l'opérateur est sensible à la casse. Si vous voulez le rendre insensible à la casse, vous devez mettre Option Comparer le texte en haut de votre module. En utilisant cette méthode, le Comme L'opérateur considère « S » et « s » comme les mêmes caractères. Dans nos exemples, nous utiliserons la comparaison par défaut, sensible à la casse.
Si la correspondance existe, le Comme L'opérateur renvoie True comme résultat, ou False sinon.
Tout d'abord, nous allons examiner l'exemple simple où nous voulons vérifier si notre variable de chaîne commence par Monsieur. Pour ce faire, vous devez mettre un astérisque (*) à la fin du texte correspondant (Monsieur*). Voici le code :
1234567891011121314 | Sous LikeDemo()Dim strName en tant que chaîneDim blnRésultat en tant que booléenstrName = "M. Michael James"Si strName comme "Mr*" AlorsblnRésultat = VraiAutreblnRésultat = FauxFin siFin du sous-marin |
Dans cet exemple, nous voulons vérifier si la chaîne strName commence par Monsieur et renvoie True ou False dans la variable blnRésultat.
On fixe d'abord la valeur de strName à M. Michael James:
1 | strName = "M. Michael James" |
Ensuite, nous utilisons le Comme opérateur dans l'instruction If :
12345 | Si strName comme "Mr*" AlorsblnRésultat = VraiAutreblnRésultat = FauxFin si |
Comme le strName commence par Monsieur, les blnRésultat renvoie Vrai :
Image 1. Utilisation de l'opérateur Like pour vérifier si la chaîne commence par certains caractères
Utilisation de l'opérateur Like avec différents modèles de correspondance
L'opérateur Like peut vérifier la correspondance de deux chaînes en fonction de modèles différents. Voici la liste des modèles de correspondance possibles :
Code de modèle |
Type de correspondance |
* | Correspond à 0 ou plusieurs caractères |
? | Correspond à un seul caractère |
# | Correspond à un seul chiffre |
[caractères] | Correspond à un seul caractère d'une liste de caractères |
[A-Z] | Correspond à n'importe quel caractère majuscule de l'alphabet |
[A-Za-z] | Correspond à n'importe quel caractère de l'alphabet |
[!chars] | Correspond à un seul caractère à l'exclusion d'une liste de caractères |
Nous pouvons maintenant voir comment utiliser ces modèles dans le code. Voici l'exemple pour plusieurs modèles :
Faire correspondre un seul caractère :
1234567 | strText1 = "ABCDE"Si strText1 Comme "AB?DE" AlorsblnRésultat1 = VraiAutreblnRésultat1 = FauxFin si |
Faire correspondre un seul chiffre :
1234567 | strText2 = "AB7DE"Si strText2 comme "AB#DE" alorsblnRésultat2 = VraiAutreblnRésultat2 = FauxFin si |
Correspondance avec n'importe quel caractère majuscule de l'alphabet :
1234567 | strText3 = "ABCDE"Si strText3 Comme "AB[A-Z]DE" AlorsblnRésultat3 = VraiAutreblnRésultat3 = FauxFin si |
Ne correspondant à aucun caractère majuscule de l'alphabet :
1234567 | strText4 = "AB7DE"Si strText4 Comme "AB[!A-Z]DE" AlorsblnRésultat4 = VraiAutreblnRésultat4 = FauxFin si |
Faire correspondre n'importe quel caractère de l'alphabet (majuscule ou minuscule) :
1234567 | strText5 = "ABcDE"Si strText5 Comme "AB[A-Za-z]DE" AlorsblnRésultat5 = VraiAutreblnRésultat5 = FauxFin si |
Lorsque vous exécutez le code, vous pouvez voir que le Comme l'opérateur renvoie True dans blnRésultat variables pour chaque comparaison :
Image 2. Utilisation de l'opérateur Like avec différents modèles de correspondance