Chaînes de comparaison VBA – StrComp

En VBA, vous pouvez comparer deux chaînes en utilisant le StrComp fonction. Dans ce tutoriel, vous apprendrez à utiliser cette fonction avec différentes méthodes de comparaison.

Si vous souhaitez apprendre à utiliser VBA comme opérateur pour comparer des correspondances inexactes, cliquez ici : VBA comme opérateur.

Si vous souhaitez apprendre à utiliser les opérateurs de comparaison, cliquez ici : Opérateurs de comparaison VBA - Pas égaux à et plus

Utilisation de la fonction StrComp pour comparer deux chaînes

Les StrComp La fonction prend deux chaînes et une méthode de comparaison comme arguments. Il existe 3 méthodes de comparaison :

  • vbBinaryComparer - compare deux chaînes binaires (sensible à la casse);
  • vbTextComparer - compare deux chaînes en tant que textes (insensible à la casse);
  • vbBase de donnéesComparer - cette méthode est disponible uniquement dans Microsoft Access et non dans VBA.

Par défaut, la fonction utilise la méthode binaire. Si nous omettons cet argument, la fonction sera sensible à la casse.

La fonction renvoie les résultats suivants :

  • 0 - si les chaînes sont égales;
  • -1 - si la chaîne 1 est inférieure à la chaîne 2;
  • 1 - si la chaîne 1 est supérieure à la chaîne 2;
  • Null - si l'une des chaînes est vide.

Voici l'exemple de code :

123 Dim intResult As IntegerintResult = StrComp("Ordinateur", "Ordinateur")

Dans cet exemple, nous voulons vérifier si les chaînes "Ordinateur" et "Ordinateur" sont égaux, en utilisant la méthode de comparaison par défaut (binaire). Le résultat de la fonction est dans le intRésultat variable. Comme vous pouvez le voir dans Image, les deux chaînes sont égales, donc le intRésultat a la valeur 0.

Image 1. Utilisation de la fonction StrComp avec la méthode binaire en VBA

Utilisation de la fonction StrComp avec la méthode binaire et textuelle

Vous verrez maintenant la différence entre l'utilisation de la méthode binaire et textuelle. La méthode binaire a un nombre binaire pour chaque caractère, donc les majuscules et les minuscules sont des caractères différents dans cette méthode. D'un autre côté, la méthode textuelle considère « S » et « s » comme les mêmes lettres. Si vous souhaitez rendre la fonction insensible à la casse, vous devez définir le troisième argument sur vbBinaryComparer. Voici le code :

123456 Dim intResult1 en tant qu'entierDim intResult2 en tant qu'entierintResult1 = StrComp("Ordinateur", "Ordinateur")intResult2 = StrComp("Ordinateur", "Ordinateur", vbTextCompare)

Nous voulons comparer des chaînes "Ordinateur" et "Ordinateur", en utilisant les deux méthodes.

Dans la variable intRésultat1, nous obtiendrons la valeur avec la méthode binaire, tandis que le intRésultat2 obtiendra la valeur avec la méthode textuelle. Vous pouvez voir les valeurs de ces deux variables :

Image 2. Utilisation de la fonction StrComp avec une méthode binaire et textuelle

La valeur de intRésultat1 est 1, ce qui signifie que deux chaînes sont différentes pour la méthode binaire. Pour la méthode textuelle, ces deux chaînes sont égales, donc la valeur de intRésultat2 est 0.

wave wave wave wave wave