Share via


Sub, instruction (Visual Basic)

Déclare le nom, les paramètres et le code qui définissent une procédure Sub.

[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] 
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
    [ statements ]
    [ Exit Sub ]
    [ statements ]
End Sub

Éléments

Terme

Définition

attributelist

Facultatif. Consultez Liste d'attributs.

Partial

Facultatif. Indique la définition d'une méthode partielle. Consultez Méthodes partielles (Visual Basic).

accessmodifier

Facultatif. Il peut s'agir de l'une des valeurs suivantes :

Consultez Niveaux d'accès dans Visual Basic.

proceduremodifiers

Facultatif. Il peut s'agir de l'une des valeurs suivantes :

Shared

Facultatif. Consultez Shared.

Shadows

Facultatif. Consultez Shadows.

name

Obligatoire. Nom de la procédure. Consultez Noms d'éléments déclarés (Visual Basic). Pour créer une procédure de constructeur pour une classe, affectez au nom d'une procédure Sub le mot clé New. Pour plus d'informations, consultez Durée de vie d'un objet : création et destruction des objets (Visual Basic).

typeparamlist

Facultatif. Liste des paramètres de type pour une procédure générique. Consultez Liste de types.

parameterlist

Facultatif. Liste des noms de variables locales représentant les paramètres de cette procédure. Consultez Liste de paramètres (Visual Basic).

Implements

Facultatif. Indique que cette procédure implémente une ou plusieurs procédures Sub, chacune étant définie dans une interface implémentée par la classe ou la structure conteneur de cette procédure. Consultez Implements, instruction.

implementslist

Requis si Implements est fourni. Liste des procédures Sub implémentées.

implementedprocedure [ , implementedprocedure ... ]

Chaque implementedprocedure emploie la syntaxe et les paramètres suivants :

interface.definedname

ÉlémentDescription
interface Obligatoire.Nom d'une interface implémentée par la classe ou la structure conteneur de cette procédure.
definedname Obligatoire.Nom par lequel la procédure est définie dans interface.

Handles

Facultatif. Indique que cette procédure peut gérer un ou plusieurs événements spécifiques. Consultez Handles, clause (Visual Basic).

eventlist

Requis si Handles est fourni. Liste des événements gérés par cette procédure.

eventspecifier [ , eventspecifier ... ]

Chaque eventspecifier emploie la syntaxe et les éléments suivants :

eventvariable.event

ÉlémentDescription
eventvariable Obligatoire.Variable objet déclarée avec le type de données de la classe ou de la structure qui déclenche l'événement.
event Obligatoire.Nom de l'événement géré par cette procédure.

statements

Facultatif. Bloc d'instructions à exécuter dans cette procédure.

End Sub

Met fin à la définition de cette procédure.

Notes

Tout le code exécutable doit se trouver à l'intérieur d'une procédure. Utilisez une procédure Sub lorsque qu'il n'est pas nécessaire de retourner une valeur au code appelant. Utilisez une procédure Function lorsque vous devez retourner une valeur.

Vous pouvez utiliser Sub seulement au niveau du module. Cela signifie que le contexte de déclaration pour une procédure sub doit être une classe, une structure, un module ou une interface et ne peut pas être un fichier source, un espace de noms, une procédure ou un bloc. Pour plus d'informations, consultez Contextes de déclaration et niveaux d'accès par défaut (Visual Basic).

Les procédures Sub disposent par défaut d'un accès public. Vous pouvez régler leurs niveaux d'accès avec les modificateurs d'accès.

Règles

  • Implémentation. Si cette procédure utilise le mot clé Implements, la classe ou la structure conteneur doit avoir une instruction Implements qui suit immédiatement son instruction Class ou Structure. L'instruction Implements doit inclure chaque interface spécifiée dans implementslist. Toutefois, le nom par lequel une interface définit Sub (dans definedname) ne doit pas être identique au nom de cette procédure (dans name).

Comportement

  • Retour d'une procédure. Lorsque la procédure Sub retourne au code appelant, l'exécution se poursuit avec l'instruction qui suit celle qui l'a appelé.

    Les instructions Exit Sub et Return provoquent la sortie immédiate d'une procédure Sub. Plusieurs instructions Exit Sub et Return peuvent apparaître n'importe où dans la procédure, et vous pouvez associer des instructions Exit Sub et Return.

    L'exemple suivant affiche un retour d'une procédure Sub.

    Sub mySub(ByVal q As String)
        Return
    End Sub 
    
  • Appel d'une procédure. Une procédure Sub, à l'instar d'une procédure Function, est une procédure distincte qui peut prendre en charge des paramètres et exécuter une série d'instructions. Toutefois, contrairement à une procédure Function, qui retourne une valeur, une procédure Sub ne peut pas être utilisée dans une expression.

    Vous appelez une procédure Sub en utilisant le nom de procédure, suivi de la liste d'arguments entre parenthèses, dans une instruction. Vous pouvez omettre les parenthèses seulement si vous n'indiquez aucun argument. Toutefois, votre code est plus lisible si vous incluez toujours les parenthèses.

    Vous pouvez éventuellement utiliser l'instruction Call pour appeler une procédure Sub. Cela permet d'améliorer la lisibilité de votre code.

Dépannage

Ordre d'exécution. Visual Basic réorganise quelquefois les expressions arithmétiques de manière à optimiser l'efficacité interne. Pour cette raison, si votre liste d'arguments inclut des expressions qui appellent d'autres procédures, ne vous attendez pas à ce qu'elles soient appelées dans un ordre donné.

Exemple

L'exemple suivant utilise l'instruction Sub pour définir le nom, les paramètres et le code qui forment le corps d'une procédure Sub.

Sub computeArea(ByVal length As Double, ByVal width As Double)
    ' Declare local variable.
    Dim area As Double
    If length = 0 Or width = 0 Then
        ' If either argument = 0 then exit Sub immediately.
        Exit Sub
    End If
    ' Calculate area of rectangle.
    area = length * width
    ' Print area to Immediate window.
    Debug.WriteLine(area)
End Sub

Voir aussi

Tâches

Comment : utiliser une classe générique (Visual Basic)

Procédures de dépannage (Visual Basic)

Comment : créer une méthode partielle (Visual Basic)

Référence

Implements, instruction

Function, instruction (Visual Basic)

Liste de paramètres (Visual Basic)

Dim, instruction (Visual Basic)

Call, instruction (Visual Basic)

Of, clause (Visual Basic)

Concepts

Tableaux de paramètres (Visual Basic)

Méthodes partielles (Visual Basic)