VBScript - Les fonctions et les procédures

Décembre 2016

La notion de procédure

On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction (ou procédure) dans la plupart des langages de programmation. VBScript distingue deux types de procédures :

  • Les procédures Sub, ensemble d'instructions ne retournant pas de valeur
  • Les procédures Function, ensemble d'instructions retournant une valeur en sortie

Les procédures permettent d'exécuter dans plusieurs parties du programme une série d'instructions, cela permet une simplicité du code et donc une taille de programme minimale. D'autre part, une fonction peut faire appel à elle-même, on parle alors de fonction récursive (il ne faut pas oublier de mettre une condition de sortie au risque sinon de ne pas pouvoir arrêter le programme...).

VBScript contient des fonctions prédéfinies qui peuvent s'appliquer pour un ou plusieurs types d'objets spécifiques, on appelle ces fonctions des méthodes.

La déclaration d'une procédure Sub

Avant d'être utilisée, une procédure Sub doit être définie car pour l'appeler dans le corps du programme il faut que l'environnement la connaisse, c'est-à-dire qu'il connaisse son nom, ses arguments et les instructions qu'elle contient. La définition d'une procédure s'appelle "déclaration".

La déclaration d'une procédure Sub se fait entre les insctructions Sub et End Sub selon la syntaxe suivante :

Sub Nom_De_La_Procedure(argument1, argument2, ...)
		   liste d'instructions
End Sub

Remarques:

  • Le mot clé Sub est suivi du nom que l'on donne à la procédure
  • Le nom de la fonction suit les mêmes règles que les noms de variables :
    • le nom doit commencer par une lettre
    • un nom de procédure peut comporter des lettres, des chiffres et les caractères _ et & (les espaces ne sont pas autorisés!)
    • le nom de la fonction, comme celui des variables est sensible à la casse (différenciation entre les minuscules et majuscules)
  • Les arguments sont facultatifs, mais s'il n'y a pas d'arguments, les parenthèses doivent rester présentes
  • Il ne faut pas oublier de refermer les accolades

  • Le nombre d'accolades ouvertes (fonction, boucles et autres structures) doit être égal au nombre de parenthèses fermées!
  • La même chose s'applique pour les parenthèses, les crochets ou les guillemets!
Une fois cette étape franchie, votre procédure ne s'exécutera pas tant que l'on ne fait pas appel à elle quelque part dans le script !

La déclaration d'une procédure Function

Une procédure Function est similaire à une procédure Sub, à la différence près qu'elle peut retourner une valeur.

La déclaration d'une procédure Function se fait entre les insctructions Function et End Function selon la syntaxe suivante :

Function Nom_De_La_Procedure(argument1, argument2, ...)
		   Liste d'instructions
End Function

La procédure Function peut renvoyer une valeur, de type Variant en affectant une valeur dans une ou plusieurs de ses instructions à une valable possédant le même nom qu'elle.

La fonction suivante convertit par exemple en euros le prix passé en argument en francs :

Function FrancEuro(prix)
 FrancEuro = prix / 6.55957
End Function

Appel de fonction

Pour exécuter une fonction, il suffit de faire appel à elle en écrivant son nom (une fois de plus en respectant la casse) suivi d'une parenthèse ouverte (éventuellement des arguments) puis d'une parenthèse fermée :

Nom_De_La_Fonction()

L'appel d'une procédure se fait de la manière suivante :

Call Nom_De_La_Procedure()

Il est également possible d'appeler une procédure comme suit :

Nom_De_La_Procedure arguments

Remarques:

  • Si jamais vous avez défini des arguments dans la déclaration de la fonction, il faudra veiller à les inclure lors de l'appel de la fonction (le même nombre d'arguments séparés par des virgules!)

Veillez toujours à ce qu'une fonction soit déclarée avant d'étre appelée, sachant que l'interpréteur traite le script de haut en bas (Pour éviter des erreurs de ce type on déclare généralement les fonctions en début de script).

Grâce au gestionnaire d'événement onLoad (à placer dans la balise BODY) il est possible d'exécuter une fonction au chargement de la page, comme par exemple l'initialisation des variables pour votre script, et/ou le test du navigateur pour savoir si celui-ci est apte à faire fonctionner le script.
Il s'utilise de la manière suivante :

<HTML>

<HEAD>

<SCRIPT language="VBScript">

<!--
 

function Chargement() {
alert('Bienvenue sur le site');

}

 

//-->

</SCRIPT>

</HEAD>

<BODY onLoad="Chargement();" >

 

Code VBScript qui ne sert absolument à rien
si ce n'est déranger vos visiteurs...
 

</BODY>

</HTML>

Les paramètres d'une fonction

Il est possible de passer des paramètres à une fonction, c'est-à-dire lui fournir une valeur ou le nom d'une variable afin que la fonction puisse effectuer des opérations sur ces paramètres ou bien grâce à ces paramètres.
Lorsque vous passez plusieurs paramètres à une fonction il faut les séparer par des virgules, aussi bien dans la déclaration que dans l'appel et il faudra veiller à bien passer le bon nombre de paramètres lors de l'appel au risque sinon de créer une erreur dans votre script...

Travailler sur des variables dans les fonctions

Lorsque vous manipulerez des variables dans des fonctions, il vous arrivera de constater que vous avez beau modifier la variable dans la fonction celle-ci retrouve sa valeur d'origine dès que l'on sort de la fonction...

Cela est dû à la portée des variables, c'est-à-dire si elles ont été définies comme variables globales ou locales.

  • Une variable déclarée implicitement (non précédée du mot var) sera globale, c'est-à-dire accessible après exécution de la fonction
  • Une variable déclarée explicitement (précédée du mot var) sera locale, c'est-à-dire accessible uniquement dans la fonction, toute référence à cette variable hors de la fonction provoquera une erreur (variable inconnue)...

A voir également :

Ce document intitulé «  VBScript - Les fonctions et les procédures  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.