Sub, instruction

Déclare le nom, les arguments et le code qui forment le corps d'une procédure Sub.

[Public [Default] | Private] Sub name [(arglist)]
   [statements]
   [Exit Sub]
   [statements]
End Sub

Arguments

Public

Indique que la procédure Sub est accessible à toutes les autres procédures dans tous les scripts.

Default

Utilisé seulement avec le mot clé Public dans un bloc Class pour indiquer que la procédure Sub est la méthode par défaut de la classe. Une erreur se produit si plusieurs procédures Default sont spécifiées dans une classe.

Private

Indique que la procédure Sub est accessible uniquement aux autres procédures du script dans lequel elle est déclarée.

name

Nom de la procédure Sub ; respecte les conventions standard d'affectation de nom à des variables.

arglist

Liste de variables représentant les arguments passés à la procédure Sub quand elle est appelée. Les variables multiples sont séparées par des virgules.

statements

Tout groupe d'instructions à exécuter dans le corps de la procédure Sub.

L'argument arglist comprend la syntaxe et les éléments suivants :

[ByVal | ByRef] varname[( )]

Arguments

ByVal

Indique que l'argument est transmis par valeur.

ByRef

Indique que l'argument est transmis par référence.

varname

Nom de la variable représentant l'argument ; respecte les conventions standard d'affectation de nom à des variables.

Notes

En l'absence des mots clés Public ou Private, les procédures Sub sont publiques par défaut. En d'autres termes, elles sont visibles pour toutes les autres procédures de votre script. La valeur des variables locales dans une procédure Sub n'est pas conservée entre les appels à la procédure.

Vous ne pouvez définir une procédure Sub à l'intérieur d'une autre procédure Function ou Property Get.

L'instruction Exit Sub provoque la sortie immédiate d'une procédure Sub. L'exécution du programme se poursuit avec l'instruction suivant l'instruction ayant appelé la procédure Sub. Une procédure Sub peut comporter un nombre indéterminé d'instructions Exit Sub apparaissant en n'importe quel point.

À l'instar d'une procédure Function, une procédure Sub est une procédure distincte qui peut prendre des arguments, exécuter une série d'instructions et changer la valeur de ses arguments. Toutefois, contrairement à la procédure Function qui renvoie 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 la procédure, suivi de la liste des arguments. Pour plus d'informations sur la manière d'appeler les procédures Sub, consultez l'instruction Call.

Attention   Les procédures Sub peuvent être récursives, autrement dit, elles peuvent s'appeler elles-mêmes pour effectuer une tâche donnée. Toutefois, la récursivité peut amener au dépassement de la capacité de la pile.

Les variables utilisées dans les procédures Sub se divisent en deux catégories : celles qui sont déclarées explicitement dans la procédure et celles qui ne le sont pas. Les premières (déclarées en utilisant Dim ou l'équivalent) sont toujours locales pour la procédure. Les variables utilisées sans avoir été déclarées explicitement dans une procédure sont toujours locales, à moins qu'elles n'aient été explicitement déclarées à un niveau supérieur hors de la procédure.

Attention   Une procédure peut utiliser une variable qui n'est pas déclarée explicitement dans la procédure, mais un conflit peut se produire si vous avez défini un élément au niveau du script qui porte le même nom que celui de la variable. Si votre procédure fait référence à une variable non déclarée portant le même nom qu'une autre procédure, constante ou variable, il est supposé que votre procédure fait référence à ce nom au niveau du script. Pour éviter ce genre de conflit, utilisez une instruction Option Explicit pour forcer la déclaration explicite des variables.

Version requise

Version 1

Voir aussi

Call, instruction | Dim, instruction | Exit, instruction | Function, instruction