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 :MustOverride Overrides
NotOverridable Overrides
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
Comment : créer une méthode partielle (Visual Basic)
Concepts
Référence
Function, instruction (Visual Basic)
Dim, instruction (Visual Basic)