Partager via


Sous-procédures (Visual Basic)

Une procédure Sub est une série d’instructions Visual Basic placées entre les instructions Sub et End Sub. La Sub procédure effectue une tâche, puis retourne le contrôle au code appelant, mais elle ne retourne pas de valeur au code appelant.

Chaque fois que la procédure est appelée, ses instructions sont exécutées, en commençant par la première instruction exécutable après l’instruction Sub et se terminant par le premier End Sub, Exit Subou Return l’instruction rencontrée.

Vous pouvez définir une Sub procédure dans les modules, les classes et les structures. Par défaut, il s’agit Public, ce qui signifie que vous pouvez l’appeler depuis n’importe où dans votre application qui a accès au module, à la classe ou à la structure dans laquelle vous l’avez défini. La méthode de terme décrit une ou Function une Sub procédure accessible à partir de l’extérieur de son module, classe ou structure de définition. Pour plus d’informations, consultez Procédures.

Une procédure Sub peut prendre des arguments, tels que des constantes, des variables ou des expressions, qui sont passées à celle-ci par le code appelant.

Syntaxe de déclaration

La syntaxe de déclaration d’une procédure Sub est la suivante :

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

Vous modifiers pouvez spécifier le niveau d’accès et les informations sur la surcharge, la substitution, le partage et l’ombre. Pour plus d’informations, consultez l’instruction Sub.

Déclaration de paramètre

Vous déclarez chaque paramètre de procédure de la même façon que vous déclarez une variable, en spécifiant le nom du paramètre et le type de données. Vous pouvez également spécifier le mécanisme de passage et indiquer si le paramètre est facultatif ou un tableau de paramètres.

La syntaxe de chaque paramètre de la liste des paramètres est la suivante :

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

Si le paramètre est facultatif, vous devez également fournir une valeur par défaut dans le cadre de sa déclaration. La syntaxe permettant de spécifier une valeur par défaut est la suivante :

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

Paramètres en tant que variables locales

Lorsque le contrôle passe à la procédure, chaque paramètre est traité comme une variable locale. Cela signifie que sa durée de vie est la même que celle de la procédure, et son étendue est l’ensemble de la procédure.

Syntaxe appelante

Vous appelez explicitement une Sub procédure avec une instruction d’appel autonome. Vous ne pouvez pas l’appeler à l’aide de son nom dans une expression. Vous devez fournir des valeurs pour tous les arguments qui ne sont pas facultatifs, et vous devez placer la liste d’arguments entre parenthèses. Si aucun argument n’est fourni, vous pouvez éventuellement omettre les parenthèses. L’utilisation du Call mot clé est facultative, mais n’est pas recommandée.

La syntaxe d’un appel à une Sub procédure est la suivante :

[Call] SubName[(argumentlist)]

Vous pouvez appeler une Sub méthode en dehors de la classe qui la définit. Tout d’abord, vous devez utiliser le New mot clé pour créer une instance de la classe ou appeler une méthode qui retourne une instance de la classe. Pour plus d’informations, consultez New Operator. Ensuite, vous pouvez utiliser la syntaxe suivante pour appeler la Sub méthode sur l’objet d’instance :

object.MethodName[(argumentList)]

Illustration de la déclaration et de l’appel

La procédure suivante Sub indique à l’opérateur d’ordinateur quelle tâche l’application est sur le point d’effectuer et affiche également un horodatage. Au lieu de dupliquer ce code au début de chaque tâche, l’application appelle tellOperator simplement à partir de différents emplacements. Chaque appel transmet une chaîne dans l’argument task qui identifie la tâche démarrée.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

L’exemple suivant montre un appel classique à tellOperator.

tellOperator("file update")

Voir aussi