Appeler des procédures Sub et Function

Pour appeler une procédure Sub à partir d’une autre procédure, tapez son nom et donnez des valeurs à tous les arguments obligatoires. L’instruction Call n’est pas obligatoire, mais si vous l’utilisez, vous devez placer les éventuels arguments entre parenthèses.

Utilisez une procédure Sub pour organiser d’autres procédures afin qu’elles soient plus faciles à comprendre et à déboguer. Dans l’exemple suivant, la procédure SubMain appelle la procédure SubMultiBeep en transmettant la valeur 56 pour argument.

Une fois MultiBeep en cours d’exécution, le contrôle revient à Main, et Main appelle la procédure SubMessage. Message affiche une zone de message. Quand l’utilisateur clique sur OK, le contrôle revient à Main et Main 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 "Time to take a break!" 
End Sub

Remarque

Vous voulez développer des solutions qui étendent l’expérience Office sur plusieurs plateformes ? Découvrez le nouveau modèle de compléments Office. Les compléments Office ont un encombrement réduit par rapport aux compléments et solutions VSTO. Vous pouvez les créer à l’aide de pratiquement n’importe quelle technologie de programmation web, telle que HTML5, JavaScript, CSS3 et XML.

Appeler des procédures Sub avec plusieurs arguments

L’exemple suivant présente deux façons d’appeler une procédure Sub avec plusieurs arguments. Au deuxième appel, des parenthèses doivent obligatoirement entourer les arguments, car l’instruction Call est utilisé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 "You cannot afford this house." 
 Else 
 MsgBox "This house is affordable." 
 End If 
End Sub

Utiliser des parenthèses lors de l’appel de procédures de fonction

Pour utiliser la valeur de retour d’une fonction, attribuer la fonction à une variable et placez les arguments entre parenthèses, comme illustré dans l’exemple suivant.

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3") 

Si la valeur renvoyée par une fonction ne vous intéresse pas, vous pouvez appeler une fonction de la même manière que vous appelez une procédure Sub. Omettez les parenthèses, répertoriez les arguments et n’affectez pas la fonction à une variable, comme illustré dans l’exemple suivant.

MsgBox "Task Completed!", 0, "Task Box" 

Si vous incluez des parenthèses dans l’exemple précédent, l’instruction entraîne une erreur de syntaxe.

Transmettre des arguments nommés

Une instruction d’une procédure Sub ou Function peut transmettre des valeurs à des procédures nommées au moyen d’arguments nommés. Vous pouvez répertorier arguments nommés dans n’importe quel ordre. Un argument nommé se compose du nom de l’argument suivi de deux-points et un signe égal (: =) et la valeur est affectée à l’argument.

L’exemple suivant appelle la fonction MsgBox en utilisant des arguments nommés sans valeur renvoyée.

MsgBox Title:="Task Box", Prompt:="Task Completed!" 

L’exemple suivant appelle la fonction MsgBox en utilisant des arguments nommés. La valeur renvoyée est affectée à la variable.

answer3 = MsgBox(Title:="Question 3", _ 
Prompt:="Are you happy with your salary?", Buttons:=4) 

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.