Procédures de VBScript

Microsoft VBScript

Microsoft® Visual Basic® Scripting Edition Procédures de VBScript  Didacticiel VBScript 
 Précédent 
Suivant 

 

Les types de procédures
Dans VBScript, il existe deux types de procédures : la procédure Sub et la procédure Function.
Procédures Sub
Une procédure Sub est une série d'instructions VBScript, encadrée par les instructions Sub et End Sub, qui effectue des actions mais ne renvoie pas de valeur. Une procédure Sub peut accepter des arguments (constantes, variables ou expressions transmises par une procédure appelante). Si une procédure Sub n'a pas d'arguments, son instruction Sub doit présenter une paire de parenthèses vide.

La procédure Sub suivante utilise deux fonctions VBScript intrinsèques, ou intégrées, MsgBox et InputBox, pour demander des informations à l'utilisateur. Elle affiche ensuite les résultats d'un calcul basé sur ces informations. Le calcul est effectué dans une procédure Function créée à l'aide de VBScript. La procédure Function est présentée dans le prochain paragraphe.

 Sub ConvertTemp()
    temp = InputBox("Veuillez entrer la température en degrés F.", 1)
    MsgBox "La température est de " & Celsius(temp) & " degrés C."
 End Sub
Procédures Function
Une procédure Function est une série d'instructions VBScript encadrée par les instructions Function et End Function. Une procédure Function est semblable à une procédure Sub mais peut renvoyer une valeur. Une procédure Function peut accepter des arguments (constantes, variables ou expressions transmises par une procédure appelante). Si une procédure Function n'a pas d'arguments, son instruction Function doit présenter une paire de parenthèses vide. Une procédure Function renvoie une valeur en affectant une valeur à son nom dans une ou plusieurs instructions de la procédure. Le type du retour d'une Function est toujours Variant.

Dans l'exemple ci-dessous, la fonction Celsius calcule les degrés Celsius à partir des degrés Fahrenheit. Lorsque la fonction est appelée à partir de la procédure Sub ConvertTemp, une variable contenant la valeur argument lui est transmise. Le résultat du calcul est renvoyé à la procédure appelante et affiché dans une boîte de message.

 Sub ConvertTemp()
     temp = InputBox("Veuillez entrer la température en degrés F.", 1)
     MsgBox "La température est de " & Celsius(temp) & " degrés C."
 End Sub

 Function Celsius(degrésF)
     Celsius = (degrésF - 32) * 5 / 9
 End Function

Échange des données avec les procédures
Chaque élément de données est transmis à vos procédures par l'intermédiaire d'un argument. Les arguments servent de symboles aux données que vous voulez transmettre à la procédure. Vous pouvez nommer vos arguments de la même manière que vous nommez des variables. Lorsque vous créez une procédure par une instruction Sub ou une instruction Function, les parenthèses doivent figurer après le nom de la procédure. Les arguments éventuels figurent entre ces parenthèses, séparés par des virgules. Par exemple, dans l'exemple suivant degrésF symbolise la valeur transmise à la fonction Celsius pour conversion :
 Function Celsius(degrésF)
    Celsius = (degrésF - 32) * 5 / 9
 End Function
Pour récupérer les données d'une procédure, vous devez utiliser une Function. Une procédure Function peut renvoyer une valeur, une procédure Sub ne le peut pas.
Utilisation des procédures Sub et Function dans le code
Dans votre code, une Function doit toujours apparaître à droite d'une affectation de variable ou dans une expression. Par exemple :

 Temp = Celsius(degrésF)
ou
 MsgBox "La température est de " & Celsius(degrésF) & " degrés C."

Pour appeler une procédure Sub à partir d'une autre procédure, faites simplement figurer le nom de la procédure suivi le cas échéant des valeurs arguments séparées par des virgules. L'instruction Call n'est pas obligatoire, mais si vous l'utilisez, vous devez encadrer les arguments éventuels par des parenthèses.

L'exemple ci-dessous présente deux appels à la procédure MaProc. L'un utilise l'instruction Call, l'autre non. Les deux font exactement la même chose.

 Call MaProc(arg1, arg2)
 MaProc arg1, arg2
Remarquez que les parenthèses sont omises lorsque l'instruction Call n'est pas utilisée.