Fonctions et procédures VBScript avec exemple

⚡ Résumé intelligent

Les fonctions et procédures VBScript organisent le code en blocs réutilisables. Une procédure Sub exécute des instructions sans renvoyer de valeur, tandis qu'une procédure Function renvoie une valeur en l'affectant au nom de la fonction ; les arguments sont passés par référence (ByRef) ou par valeur (ByVal).

  • 🧱 Code Réutilisation: Les procédures modularisent le code afin de faciliter son écriture, son débogage et sa maintenance dans les scripts de grande taille.
  • 📤 Sous-procédure : Une procédure Sub exécute un bloc d'instructions entre Sub et End Sub, mais ne renvoie aucune valeur.
  • (I.e. Procédure fonctionnelle : Une fonction renvoie une valeur en l'assignant au nom de la fonction entre Function et End Function.
  • 📞 Appel: Utilisez le mot-clé call pour exécuter une procédure Sub et utilisez le nom d'une fonction dans une expression pour obtenir son résultat.
  • (I.e. Par référence vs Par valeur : ByRef permet aux modifications de persister après l'appel ; ByVal fonctionne sur une copie, les modifications ne sont donc pas conservées.
  • ⚙️ Passage par défaut : VBScript transmet les arguments par référence par défaut, sauf si vous spécifiez ByVal.

Fonctions et procédures VBScript

Procédures VBScript

Les procédures VBScript sont principalement utilisées pour l'organisation et la réutilisation du code. Nous avons utilisé des exemples simples jusqu'à présent car ici le but est d'apprendre VBScript. Mais dans un scénario réel, le code n’est pas aussi simple que cela. Lorsque vous essayez d’implémenter quelque chose d’utile, le code peut devenir plus complexe. Il peut y avoir des centaines de lignes s'étendant sur plusieurs pages.

Si vous n’organisez pas correctement le code, l’ensemble du processus de codage, de débogage et de gestion du code deviendra vraiment complexe. Vous devez donc organiser ou modulariser soigneusement le code afin que votre code devienne facilement gérable.

De plus, supposons que vous disposiez d’un ensemble d’instructions qui effectuent une action particulière. Vous souhaitez que la même action soit répétée plusieurs fois. Alors pourquoi devriez-vous écrire le même code encore et encore ? En utilisant des techniques efficaces, vous pouvez rendre votre code réutilisable. Cela aidera les développeurs à organiser magnifiquement le code et les testeurs à identifier facilement les bogues. En bref, la modularisation et la réutilisation du code sont très importantes pour rendre le code plus puissant, plus fiable et plus facile à maintenir. Voici les procédures en image.

Types de procédures dans VBScript

Une procédure est un bloc de code qui remplit idéalement une seule fonction. Un bloc de code qui traite une entrée ou gère un fichier est un bon exemple de fonction. Il existe deux types de procédures dans VBScript.

  1. Sous-procédure : La sous-procédure ne renvoie pas de valeur.
  2. Procédure fonctionnelle : La procédure fonctionnelle est utilisée si vous souhaitez renvoyer une valeur.

Sous-procédures

Si vous souhaitez exécuter une série d'instructions sans renvoyer aucune valeur, vous pouvez utiliser des sous-procédures.

Les sous-procédures commencent et se terminent respectivement par les instructions Sub et End Sub. Les sous-procédures peuvent prendre des arguments, mais ne peuvent pas renvoyer de valeur. Les sous-procédures peuvent ou non recevoir des entrées.

Sub outputMessage()
document.write("Welcome")
End Sub

Le simple fait d'écrire ce code ne produira rien. Ici, vous avez créé une sous-procédure nommée outputMessage. Ensuite, vous devez l'appeler.

appelez outputMessage()

Combinez ces deux ensembles de codes à l'intérieur tag like this.

<script type="text/vbscript">

Sub outputMessage()
document.write("Welcome")
End Sub
call outputMessage()
</script>

La sortie de ce code sera

Sous-procédures

Fonctions VBScript

Si vous souhaitez exécuter une série d'instructions et renvoyer une valeur, vous devez alors utiliser des procédures fonctionnelles, communément appelées fonction.

Les procédures fonctionnelles commencent et se terminent respectivement par les instructions Function et End Function.

Une procédure fonctionnelle peut ou non prendre des entrées.

Les procédures fonctionnelles renvoient une valeur en attribuant la valeur à son nom.

<script type="text/vbscript">
Function findArea(radius)
   const pi=3.14
   area = pi*radius*radius
   findArea = area
End Function
document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>")
document.write("The area of the circle when the radius is 10 is " & findArea(10))

</script>

La sortie de ce code sera

Fonctions VBScript

Paramètres ByRef et ByVal

Vous pouvez transmettre des arguments VBScript aux procédures par référence ou par valeur.

Si vous ne spécifiez rien lorsque vous appelez une procédure, alors le ou les arguments sont passés par référence par défaut.

Si les modifications apportées aux arguments persistent même après l'appel de la procédure, vous devez alors transmettre les arguments VBScript par référence.

Lorsqu'un argument est passé par valeur, toutes les modifications apportées par la procédure appelée à la valeur du variable ne persistez pas après l’appel de la procédure.

Les mots-clés ByRef et ByVal sont utilisés pour passer des arguments respectivement par référence et par valeur.

Pour comprendre la différence, exécutez d’abord le code ci-dessous et voyez le résultat.

Étape 1) Copiez le code dans votre éditeur

<script type="text/vbscript">
Function returnResult(ByRef value)
   value = value +1
   returnResult = value
End Function
Dim x
x=5
call returnResult(x)
document.write(x)
</script>

Étape 2) la sortie est 6.

Étape 3) Remplacez la fonction returnResult (valeur ByRef) par la fonction returnResult (valeur ByVal)

Étape 4) Maintenant, votre sortie sera 5.

FAQ

Utilisez `Exit Sub` à l'intérieur d'une procédure `Sub`, ou `Exit Function` à l'intérieur d'une procédure `Function`, pour quitter la procédure juste avant la fin. L'exécution reprend alors à la ligne qui l'a appelée.

Si vous utilisez le mot-clé `call`, placez les arguments entre parenthèses. Si vous omettez `call`, n'utilisez pas de parenthèses autour de plusieurs arguments. Cette erreur est une faute de syntaxe courante en VBScript.

Oui. Une procédure ou une fonction VBScript peut s'appeler elle-même ; c'est ce qu'on appelle la récursivité. Il est impératif d'inclure une condition de base pour interrompre les appels, sinon le script bouclera jusqu'à épuisement de l'espace disponible dans la pile.

Oui. L'IA peut repérer les doublons, par exemple.tracIntégrez-les dans une sous-routine ou une fonction avec les paramètres appropriés, puis mettez à jour les appels. Cela permet de raccourcir les scripts et de faciliter leur maintenance.

Oui. L'IA peut trace comment une valeur change avec ByRef par rapport à ByVal, afficher le résultat pour chacun et recommander lequel utiliser selon que l'appelant doit ou non voir le changement.

Résumez cet article avec :