Execute, instruction

Microsoft VBScript

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


Description
Exécute une ou plusieurs instructions spécifiées dans l'espace de nom global d'un script.
Syntaxe
ExecuteGlobal instruction

L'argument instruction requis est une expression de chaîne contenant une ou plusieurs instructions pour l'exécution.  Incluez plusieurs instructions dans l'argument instructions en les séparant par deux points ou des sauts de ligne intégrés.

Notes
Dans VBScript, x = y peut être interprété de deux manières. La première correspond à une instruction d'affectation, où la valeur de y est affectée à x. La seconde interprétation est une expression qui teste si x et y ont la même valeur. Si c'est le cas, result a la valeur True ; dans le cas contraire, result a la valeur False. L'instruction ExecuteGlobal utilise toujours la première interprétation, tandis que la méthode Eval adopte la seconde.

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

Toutes les instructions utilisées avec ExecuteGlobal sont exécutées dans le nom d'espace global du script. Ceci permet au code d'être ajouté au programme afin que toutes les procédures puissent y accéder. Par exemple, une instruction Class de VBScript peut être définie au moment de l'exécution et les fonctions peuvent alors créer de nouvelles instances de la classe.

L'ajout de procédures et de classes au moment de l'exécution peut s'avérer très utile, mais crée le risque d'écraser des variables globales et fonctions existantes. Ceci pouvant causer d'importants problèmes de programmation, le plus grand soin est nécessaire lors de l'utilisation de l'instruction ExecuteGlobal. Si vous n'avez pas à accéder à une variable ou à une fonction en dehors d'une procédure, utilisez l'instruction Execute qui affecte uniquement le nom d'espace de la fonction appelante.

L'exemple ci-dessous illustre l'utilisation de l'instruction ExecuteGlobal :

Dim X			' Déclare 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ée ici une procédure
			' qui, lorsqu'elle est appelée, affiche X.
			' Elle affiche la valeur X globale car Proc2
			' hérite des éléments de portée globale.
  ExecuteGlobal "Sub Proc2: Print X: End Sub"
  Print Eval("X")	' Affiche la valeur X locale.
  Proc2		' Appelle Proc2 dans la portée globale, 
			' "Global" étant affiché.
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 ci-dessous montre comment l'instruction ExecuteGlobal 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"
ExecuteGlobal S