VBA - Sous-procédure

Sub Procedures sont similaires aux fonctions, mais il existe quelques différences.

  • Les sous-procédures NE renvoient PAS de valeur alors que les fonctions peuvent ou non renvoyer une valeur.

  • Les sous-procédures PEUVENT être appelées sans mot-clé d'appel.

  • Les procédures Sub sont toujours incluses dans les instructions Sub et End Sub.

Exemple

Sub Area(x As Double, y As Double)
   MsgBox x * y
End Sub

Procédures d'appel

Pour appeler une procédure quelque part dans le script, vous pouvez effectuer un appel à partir d'une fonction. Nous ne pourrons pas utiliser la même manière que celle d'une fonction car la sous-procédure NE retournera PAS de valeur.

Function findArea(Length As Double, Width As Variant)
   area Length, Width    ' To Calculate Area 'area' sub proc is called
End Function

Vous pourrez maintenant appeler la fonction uniquement mais pas la sous-procédure comme indiqué dans la capture d'écran suivante.

La zone est calculée et affichée uniquement dans la zone Message.

La cellule de résultat affiche ZERO car la valeur de la zone n'est PAS renvoyée par la fonction. En bref, vous ne pouvez pas appeler directement une sous-procédure à partir de la feuille de calcul Excel.