Sub, instruction (Visual Basic)

Mise à jour : novembre 2007

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

  • attributelist
    Facultatif. Consultez Liste d'attributs.

  • Partial
    Facultatif. Indique la définition d'une méthode partielle. Consultez Méthodes partielles.

  • 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.

  • 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.

  • 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 éléments suivants :

    interface.definedname

    Élément

    Description

    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.

  • 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ément

    Description

    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.

  • EndSub
    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.

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 le 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

Procédures de dépannage

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

Concepts

Tableaux de paramètres

Méthodes partielles

Référence

Implements, instruction

Function, instruction (Visual Basic)

Liste de paramètres

Dim, instruction (Visual Basic)

Call, instruction (Visual Basic)

Of