Renvoie une donnée de type Variante (Long) spécifiant la position de la première occurrence d’une chaîne dans une autre chaîne.
Syntaxe
InStr ([start, ] string1, string2 [, compare ] )
La syntaxe de la fonction InStr contient les arguments suivants :
Argument |
Description |
---|---|
début |
Facultatif. Expression numérique qui définit la position de départ de chaque recherche. Si elle est omise, la recherche commence à la position du premier caractère. Si start contient Null, une erreur se produit. L’argument début est obligatoire si comparaison est spécifié. |
chaîne1 |
Obligatoire. Expression de chaîne recherchée. |
chaîne2 |
Obligatoire. Expression de chaîne recherchée. |
comparaison |
Facultatif. Spécifie le type de comparaison de chaînes. Si comparaison a la valeur Null, une erreur se produit. Si compare est omis, le paramètre OptionCompare détermine le type de comparaison. Spécifiez un LCID (LocaleID) valide pour utiliser des règles spécifiques aux paramètres régionaux dans la comparaison. |
Conseil : Le Générateur d’expressions a IntelliSense, ce qui vous permet de voir les arguments requis par votre expression.
Paramètres
Les paramètres d’argument de comparaison sont les suivants :
Constante |
Valeur |
Description |
---|---|---|
vbUseCompareOption |
-1 |
Effectue une comparaison à l’aide du paramètre de l’instruction Option Compare . |
vbBinaryCompare |
0 |
Effectue une comparaison binaire. |
vbTextCompare |
1 |
Effectue une comparaison textuelle. |
Valeurs de retour
Si |
InStr retourne |
---|---|
string1 est de longueur nulle |
0 |
string1 a la valeur Null |
Null |
string2 est de longueur nulle |
début |
string2 a la valeur Null |
Null |
chaîne2 introuvable |
0 |
string2 se trouve dans string1 |
Position à laquelle la correspondance est trouvée |
démarrer > chaîne2 |
0 |
Remarques
La fonction InStrB est utilisée avec les données d’octet contenues dans une chaîne. Au lieu de retourner la position de caractère de la première occurrence d’une chaîne dans une autre, InStrB renvoie la position d’octet.
Exemples
Utiliser la fonction InStr dans une expression Vous pouvez utiliser InStr partout où vous pouvez utiliser des expressions. Par exemple, si vous souhaitez trouver la position de la première période (.) dans un champ qui contient des adresses IP (nommée IPAddress), vous pouvez utiliser InStr pour le trouver, comme suit :
InStr(1,[ADRESSE IP], ». »)
La fonction InStr examine chaque valeur dans le champ IPAddress et retourne la position du premier point. Par conséquent, si la première partie de l’adresse IP est 10., la fonction retourne la valeur 3.
Vous pouvez ensuite utiliser d’autres fonctions, fonctionnant sur la sortie de la fonction InStr , pour extraire la partie de l’adresse IP qui précède la première période, comme suit :
Left([IPAddress],(InStr(1,[IPAddress], ». ») -1))
Dans cet exemple, InStr(1,[IPAddress], ». ») retourne la position du premier point. La soustraction de 1 détermine le nombre de caractères qui précèdent la première période, dans ce cas, 2. La fonction Left extrait ensuite ce nombre de caractères de la partie gauche du champ IPAddress, en renvoyant la valeur 10.
Utiliser InStr dans le code VBA
Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA).
Cet exemple utilise la fonction InStr pour retourner la position de la première occurrence d’une chaîne dans une autre.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.