Appel de procédures Sub et Function
Pour appeler une procédure Sub depuis une autre procédure, tapez le nom de la procédure sans oublier les valeurs des arguments obligatoires. L'instruction Call n'est pas obligatoire, mais si vous l'utilisez, vous devez mettre les éventuels arguments entre parenthèses.
Vous pouvez utiliser une procédure Sub pour organiser d'autres procédures de manière à simplifier leur interprétation et leur débogage. Dans l'exemple suivant, la procédure Sub Main appelle la procédure Sub MultiBeep, passant la valeur 56 comme argument. Après l'exécution de MultiBeep, le système redonne la main à Main qui appelle la procédure Sub Message. Message affiche un message ; lorsque l'utilisateur clique sur OK, la main revient à Main qui se termine.
Sub Main()
MultiBeep 56
Message
End Sub
Sub MultiBeep(numbeeps)
For counter = 1 To numbeeps
Beep
Next counter
End Sub
Sub Message()
MsgBox "Il est temps de faire une pause!"
End Sub
Appel de procédures Sub avec plusieurs arguments
L'exemple suivant illustre deux manières d'appeler une procédure Sub avec plusieurs arguments. Lors du second appel de HouseCalc, les arguments doivent être mis entre parenthèses parce que l'instruction Call est employée.
Sub Main()
HouseCalc 99800, 43100
Call HouseCalc(380950, 49500)
End Sub
Sub HouseCalc(price As Single, wage As Single)
If 2.5 * wage <= 0.8 * price Then
MsgBox "Cette maison est trop chère."
Else
MsgBox "Cette maison est abordable."
End If
End Sub
Utilisation de parenthèses lors d'appel de procédures Function
Pour utiliser la valeur renvoyée d'une fonction, affectez la fonction à une variable et mettez les arguments entre parenthèses, comme le montre l'exemple suivant.
Answer3 = MsgBox("Votre salaire vous convient-il?", 4, "Question 3" )
Si la valeur renvoyée d'une fonction ne vous intéresse pas, vous pouvez appeler une fonction de la même manière qu'une procédure Sub. Omettez les parenthèses, indiquez les arguments et n'affectez pas la fonction à une variable, comme le montre l'exemple suivant.
MsgBox "Tâche terminée!", 0, "Boîte de tâche"
Attention Si vous incluez des parenthèses dans l'exemple précédent, l'instruction cause une erreur de syntaxe.
Passage d'arguments nommés
Une instruction dans une procédure Sub ou Function peut passer des valeurs à des procédures appelées en utilisant des arguments nommés. Vous pouvez indiquer les arguments nommés dans n'importe quel ordre. Un argument nommé est composé du nom de l'argument suivi des signes deux-points et égal (:=), puis de la valeur affectée à l'argument.
L'exemple suivant appelle la fonction MsgBox en utilisant les arguments nommés sans valeur renvoyée.
MsgBox Title:="Boîte de tâche", Prompt:="Tâche terminée!"
L'exemple suivant appelle la fonction MsgBox en utilisant des arguments nommés. La valeur renvoyée est affectée à la variable answer3.
answer3 = MsgBox(Title:="Question 3", _
Prompt:="Votre salaire vous convient-il?", Buttons:=4)