Execute, instruction

Microsoft VBScript

Microsoft® Visual Basic® Scripting Edition Execute, instruction  Référence du langage 
Version 5 


Description
Exécute une ou plusieurs instructions spécifiées.
Syntaxe
Execute statement

L'argument statement représente toute expression de chaîne contenant une ou plusieurs instructions à exécuter. Pour séparer des instructions multiples dans l'argument statement, utilisez le symbole deux-points (:) ou insérez des sauts de lignes.

Notes
Dans VBScript, l'expression x = y peut être interprétée de deux manières différentes. La première est de considérer qu'il s'agit d'une instruction permettant d'affecter la valeur y à x. La deuxième implique que l'expression recherche si x et y ont la même valeur. Si c'est le cas, result prend la valeur True. Dans le cas contraire, result prend la valeur False. L'instruction Execute utilise toujours la première interprétation, alors que l'instruction Eval utilise toujours la deuxième.

Remarque  Dans Microsoft® JScript�, il n'y a pas de confusion possible entre l'affectation et la comparaison car l'opérateur d'affectation (=) est différent de l'opérateur de comparaison (==).

Le contexte dans lequel l'instruction Execute est appelée détermine les objets et les variables disponibles pour le code en cours d'exécution. Les objets et les variables dans la portée sont accessibles par le code en cours dans une instruction Execute. Cependant, rappelez-vous que si vous exécutez un code qui crée une procédure, cette procédure n'héritera pas la portée de la procédure dans laquelle elle a été produite.

Comme toute procédure, la portée de la nouvelle procédure est globale ; elle hérite ainsi de tous les éléments de portée globale. En revanche, son contexte ne fait pas partie de la portée globale, elle peut donc être exécutée seulement dans le contexte de la procédure où l'instruction Execute est apparue. Cependant, si cette instruction Execute est appelée à l'extérieur d'une procédure (c'est-à-dire, dans le cadre de la portée générale), la procédure hérite de tout ce qui se trouve dans la portée globale, mais elle peut également être appelée de toute part puisque le contexte est global. L'exemple suivant illustre ce comportement :

Dim X			' Déclarer X globalement.
X = "Global"		' Affecte une valeur à la valeur X globale.
Sub Proc1	' Déclare la procédure.
  Dim X		' Déclare X localement.
  X = "Local"	' Affecte une valeur à la valeur X locale.
			' L'instruction Execute créé ici une 
			' procédure qui, lorsqu'elle est appelée, imprime X.
			' Elle imprime la valeur X globale car Proc2
			' hérite des éléments de portée globale.
  Execute "Sub Proc2: Print X: End Sub"
  Print Eval("X")	' Imprime la valeur X locale.
  Proc2		' Appele Proc2 dans la portée de Proc1.
End Sub
Proc2			' Cette ligne provoque une erreur car 
			' Proc2 n'est pas disponible hors de Proc1.
Proc1			' Appelle Proc1.
  Execute "Sub Proc2: Print X: End Sub"
Proc2			' Cet appel réussit car Proc2
			' est maintenant disponible globalement.
L'exemple suivant montre comme l'instruction Execute peut être réécrite de sorte qu'il n'est pas nécessaire de placer la procédure entière entre guillemets :

S = "Sub Proc2" & vbCrLf
S = S & "  Print X" & vbCrLf 
S = S & "End Sub"
Execute S