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
Function, instruction (Visual Basic)
Liste de paramètres (Visual Basic)
Dim, instruction (Visual Basic)
Call, instruction (Visual Basic)