If...Then...Else, instruction
Permet d'exécuter conditionnellement des instructions en fonction du résultat d'une expression.
Syntaxe
If condition Then [
statements] [
Else elsestatements]
Vous pouvez également utiliser la syntaxe suivante :
If condition Then
[
statements]
[
ElseIf condition-n Then
[
elseifstatements] ...
[
Else
[
elsestatements]]
End If
La syntaxe de l'instruction
If...Then...Else comprend les éléments suivants :
[TD="class: T"]
condition
[/TD]
[TD="class: T, width: 73%"]Un des deux types d'expression suivants :[/TD]
[TD="class: T, width: 27%"][/TD]
[TD="class: T, width: 73%"]Une expression numérique ou expression de chaîne qui prend la valeur
True
ou
False
. Si l'argument
condition
est Null, il est considéré comme
False
.[/TD]
[TD="class: T, width: 27%"][/TD]
[TD="class: T, width: 73%"]Une expression de la forme
TypeOf
objectname
Is
objecttype
.
Objectname
est une référence à un objet et
objecttype
est un type d'objet valide. L'expression a pour valeur
True
si
objectname
est du type d'objet indiqué par
objecttype
; sinon elle a pour valeur
False
.[/TD]
[TD="class: T, width: 27%"]
statements
[/TD]
[TD="class: T, width: 73%"]Facultatif dans la feuille bloc ; nécessaire dans une feuille à une seule ligne sans clause
Else
. Une ou plusieurs instructions séparées par un signe deux-points ; exécutée si la valeur de
condition
est
True
.[/TD]
[TD="class: T, width: 27%"]
condition-n
[/TD]
[TD="class: T, width: 73%"]Facultatif. Similaire à
condition
.[/TD]
[TD="class: T, width: 27%"]
elseifstatements
[/TD]
[TD="class: T, width: 73%"]Facultatif. Une ou plusieurs instructions exécutées si la valeur de l'argument
condition-n
associé est
True
.[/TD]
[TD="class: T, width: 27%"]
elsestatements
[/TD]
[TD="class: T, width: 73%"]Facultatif. Une ou plusieurs instructions exécutées si aucun argument
condition
précédent n'a la valeur
True
ou si la valeur de l'expression
condition-n
n'est pas
True
.[/TD]
Remarques
Vous pouvez utiliser la syntaxe à une seule ligne (première syntaxe) pour effectuer de petits tests simples. Toutefois, la deuxième syntaxe fournit une plus grande structure et davantage de souplesse ; en outre, elle est généralement plus facile à lire, à mettre à jour et à corriger.
Note Dans le cas de la syntaxe à une seule ligne, il est possible d'exécuter plusieurs instructions à partir d'une décision
If...Then. Toutes les instructions doivent se trouver sur la même ligne et être séparées par un signe deux-points, comme dans l'instruction suivante :
If A > 10 Then A = A + 1 : B = B + A : C = C + B Une instruction
If d'un bloc doit être la première instruction d'une ligne. Les éléments
Else,
ElseIf et
End If de l'instruction peuvent être uniquement précédés d'un numéro de ligne ou d'une étiquette de ligne. Le bloc
If doit se terminer par une instruction
End If.
Pour déterminer si une instruction
If est un bloc
If, examinez ce qui suit le mot clé
Then. S'il ne s'agit pas d'un commentaire, l'instruction est traitée comme une instruction
If à une seule ligne.
Les clauses
Else et
ElseIf sont facultatifs. Un bloc
If peut contenir autant de clauses
Elself que vous le souhaitez, mais aucune ne peut apparaître après une clause
Else. N'importe quel bloc d'instructions peut contenir des instructions
If imbriquées.
Lorsque vous exécutez une instruction
If d'un bloc (deuxième syntaxe), la
condition est testée. Si la valeur de l'argument
condition est
True, les instructions qui suivent
Then sont exécutées. Si la valeur de l'argument
condition est
False, chacune des conditions
ElseIf (s'il y en a) sont évaluées l'une après l'autre. Quand une condition de valeur
True est trouvée, les instructions qui suivent le
Then correspondant sont exécutées. Si aucune des conditions
Elself n'a pour valeur
True, ou s'il n'y a pas de clause
ElseIf, les instructions qui suivent
Else sont exécutées. Une fois que les instructions qui suivent
Then ou
Else exécutées, l'exécution du programme se poursuit à partir de l'instruction située après
End If.
Conseil L'instruction
Select Case peut s'avérer mieux adaptée à l'évaluation d'une expression simple qui possède plusieurs actions possibles. Toutefois, la clause
TypeOf objectname Is objecttype ne peut pas être utilisée avec
Select Case.
Note La clause
TypeOf ne peut pas être utilisée avec des types de données explicites tels que Long, Integer et des types autres que le type Object.