Fonction InStr

Renvoie la position de la première occurrence d'une chaîne au sein d'une autre chaîne.

Syntaxe

InStr([start, ]string1, string2[, compare])

Arguments :

  • start : facultatif. Expression numérique qui définit la position de départ de chaque recherche. Si l'argument est omis, la recherche commence à la position du premier caractère. Si start contient une valeur NULL, une erreur survient. L'argument start est requis si l'argument compare est spécifié.
  • string1 : requis. Expression de chaîne dans laquelle la recherche est effectuée.
  • string2 : requis. Expression de chaîne recherchée.
  • compare : facultatif. Valeur numérique indiquant le type de comparaison à utiliser lors de l'évaluation des sous-chaînes. Pour connaître les valeurs, reportez-vous à la section Paramètres. Si l'argument est omis, une comparaison binaire est effectuée.
  • Paramètres : l'argument compare peut avoir les valeurs suivantes.

    Tableau 11-15 Constantes de comparaison et descriptions

    Constante Valeur Description
    vbBinaryCompare 0 Permet d'effectuer une comparaison binaire
    vbTextCompare 1 Permet d'effectuer une comparaison textuelle

Valeur renvoyée

La fonction InStr renvoie les valeurs suivantes :

Tableau 11-16 Valeurs renvoyées par la fonction InStr

Si InStr renvoie
string1 est de longueur nulle 0
string2 est de longueur nulle start
string2 est introuvable 0
string2 se trouve dans string1 Position à laquelle la correspondance est trouvée
start > Len(string2) 0

Remarques

Les exemples suivants utilisent InStr pour rechercher une chaîne :

Exemple 1 :

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.  
SearchChar = "P"   ' Search for "P".
MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). 
' Output: 9

Exemple 2 :

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, SearchChar)   
' Comparison is binary by default (last argument is omitted)
' Default Comparison starting at the first character
' Output: 9    

Exemple 3 :

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4.
'Output: 6
MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. 
'Output: 9

Exemple 4 :

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1.
'Output: 0 ("W" is not found).