Les procédures

Les procédures (généralités)

Une procédure (ou fonction) est un groupe de ligne(s) de code de programmation destiné à exécuter une tâche bien spécifique et que l'on pourra, si besoin est, utiliser à plusieurs reprises. De plus, l'usage des procédures améliorera grandement la lisibilité et la maintenance de votre script.

En VBscript, il existe trois types de fonctions ou de procédures :

  • les fonctions propres à Javascript. On les appelle des "méthodes". Elles sont associées à un objet bien particulier comme c'était le cas de la méthode MsgBox avec l'objet document.
  • les sous-programmes (Subroutine) écrits par vous-même pour les besoins de votre script et qui ne retournent pas de valeur.
  • les fonctions (Function) proprement dites qui sont aussi écrites par vous-même mais qui peuvent retourner une valeur.


 

Déclaration d'un sous-programme

Pour déclarer ou définir un sous-programme (Subroutine), on utilise le mot (réservé) Sub. La syntaxe d'une déclaration de sous-routine est la suivante :

    Sub nom-du-sous-programme(arguments)
    ... code des instructions ...
    End Sub

Le nom du sous-programme suit les mêmes règles que celles qui régissent le nom de variables (nombre de caractères 255, commencer par une lettre, peuvent inclure des chiffres...). Pour rappel, VBscript est sensible à la case. Ainsi Calcul() ne sera pas égal à calcul(). En outre, Tous les noms des fonctions dans un script doivent être uniques.

La mention des arguments est facultative mais dans ce cas les parenthèses doivent rester. C'est d'ailleurs grâce à ces parenthèses que l'interpréteur VBscript distingue les variables des fonctions. Nous reviendrons plus en détail sur les arguments et autres paramètres.

Lorsqu'un sous-programme a été ouvert par un Sub, il doit impérativement, sous peine de message d'erreur, être refermé par un End Sub. Prenez la bonne habitude de fermer directement vos sous-routines et d'écrire votre code entre elles.

Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la composent. Ce n'est que lors de l'appel de la fonction que le code de programme est exécuté.


 

L'appel d'un sous-programme

L'appel d'un sous-programme se fait le plus simplement du monde par le nom du sous-programme (sans les parenthèses même s'il y a des arguments).

Soit par exemple
nom-du-sous-programme
nom-du-sous-programme argument1, argument2

Vous pouvez aussi (mais ce n'est pas obligatoire) utiliser l'instruction call
Call nom-du_sous-programme
Call nom-du-sous-programme(argument1, argument2)
Si le sous-programme a des arguments, il faut ici mettre des parenthèses.

Il faudra veuillez en toute logique (car l'interpréteur lit votre script de haut vers le bas) que votre fonction soit bien définie avant d'être appelée.


 

Déclaration d'une fonction

Pour rappel, la fonction retourne une valeur. Pour le reste, les règles sont assez proche de celles vues pour les sous-programmes.

Pour déclarer ou définir une fonction, on utilise le mot clé Function . La syntaxe d'une déclaration de fonction est la suivante :

    Function nom-de-la-fonction(arguments)
    ... code des instructions ...
    End Function

Ce qui été dit pour les sous-programmes concernant le nom, l'usage des parenthèses, L'emploi de End Function reste valable pour les fonctions.

Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la composent. Ce n'est que lors de l'appel de la fonction que le code de programme est exécuté.


 

Retour de la valeur dans une fonction

Pour retourner une valeur, la fonction utilise un petit artifice. On affectera la valeur à une variable dans une des lignes de code de la fonction et cette variable portera le même nom que la fonction. Ainsi, la syntaxe serait :

    Function nom-de-la-fonction(arguments)
    ... code des instructions ...
    nom-de-la-fonction = expression
    ... code des instructions ...
    End Function

Vbscript sait alors automatiquement que vous voulez renvoyer la valeur de la "variable" nom-de-la-fonction au programme qui l'a appelé. Cette façon de faire remplace le return d'autres langages de programmation ou de scripts.

Voici un exemple :

Dim cube
Function cube(nombre)
cube = nombre*nombre*nombre
End Function
La valeur retournée sera celle de "cube" soit nombre au cube.


 

Appel d'une fonction

Pour appeler une fonction, on fait apparaître le nom de la fonction à droite d'une affectation de variable souvent appelée variable de retour. La syntaxe est :

variable-retour = nom-de-la-fonction(arguments)

Dans le cadre de notre exemple, cela pourrait être :
resultat = cube(nombre)

Les parenthèses sont optionnelles même si on transmet des arguments à la fonction.