SUB |
Procédure |
---|---|
Visual Basic |
Syntaxe
[Private | Public] [Static] SUB nom[[(arglist)] [statements] [Exit Sub] [statements] End SUB |
Paramètres
Nom | Description |
---|---|
nom | Ce paramètre permet d'indiquer le nom de la procédure. Suit les conventions de dénomination des variables standard. |
arglist | Ce paramètre permet d'indiquer la liste des paramètres de la procédure passés à la procédure Sub lorsqu'elle est appelée. Plusieurs variables sont séparées par des virgules. |
statements | Ce paramètre permet d'indiquer tout groupe d'instructions à exécuter dans le corps de la procédure Sub. |
Public | Ce paramètre permet d'indiquer que la procédure Sub est accessible à toutes les autres procédures dans tous les modules. |
Private | Ce paramètre permet d'indiquer que la procédure Sub est accessible uniquement aux autres procédures du module où elle est déclarée. |
Static | Ce paramètre permet d'indiquer que les variables locales de la procédure Sub sont conservées entre les appels. L'attribut Static n'affecte pas les variables déclarées en dehors du Sub, même si elles sont utilisées dans la procédure. |
Description
Cette instruction permet de définir une procédure.
Remarques
- Le paramètre arglist a la syntaxe suivantes :
- Si elles ne sont pas explicitement spécifiées à l'aide de Public ou Private, les procédures Sub sont publiques par défaut. Si Static n'est pas utilisé, la valeur des variables locales n'est pas conservée entre les appels.
- Tout le code exécutable doit être dans des procédures. Vous ne pouvez pas définir une procédure Sub dans une autre procédure Sub, Function ou Property.
- Les mots-clefs Exit Sub provoquent une 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. N'importe quel nombre d'instructions Exit Sub peut apparaître n'importe où dans une procédure Sub.
- Comme une procédure Function, une procédure Sub est une procédure distincte pouvant prendre des paramètres, exécuter une série d'instructions et modifier la valeur de ses paramètres. Cependant, contrairement à une procédure Function, renvoyant 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 de paramètres. Voir l'instruction Call pour des informations spécifiques sur la façon d'appeler des procédures Sub.
- Les sous-procédures peuvent être récursives; c'est-à-dire qu'ils peuvent s'appeler eux-mêmes pour effectuer une tâche donnée. Cependant, la récursivité peut entraîner un débordement de pile. Le mot clef Static n'est généralement pas utilisé avec les procédures Sub récursives.
- Les variables utilisées dans les procédures Sub appartiennent à deux catégories : celles étant explicitement déclarées dans la procédure et celles ne l'étant pas. Les variables étant explicitement déclarées dans une procédure (en utilisant Dim ou l'équivalent) sont toujours locales à la procédure. Les variables étant utilisées mais non explicitement déclarées dans une procédure sont également locales à moins qu'elles ne soient explicitement déclarées à un niveau supérieur en dehors de la procédure.
- Une procédure peut utiliser une variable n'étant pas explicitement déclarée dans la procédure, mais un conflit de dénomination peut se produire si tout ce que vous avez défini au niveau du module porte le même nom. 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 module. Déclarez explicitement des variables pour éviter ce type de conflit. Vous pouvez utiliser une instruction Option Explicit pour forcer la déclaration explicite de variables.
- Vous ne pouvez pas utiliser GoSub, GoTo ou Return pour entrer ou quitter une procédure Sub.
[Optional][ByVal | ByRef][ParamArray] varname[( )] [As type] |
et les parties suivantes :
Partie | Description |
---|---|
type | Ce paramètre permet d'indiquer le type de données du paramètre passé à la procédure; peut être Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (longueur variable uniquement), Object, Variant, un type défini par l'utilisateur ou un type d'objet. |
varname | Ce paramètre permet d'indiquer le nom de la variable représentant le paramètre; suit les conventions de dénomination des variables standard. |
ByRef | Ce paramètre permet d'indiquer que le paramètre est passé par référence. |
ByVal | Ce paramètre permet d'indiquer que le paramètre est passé par valeur. |
Optional | Ce paramètre permet d'indiquer qu'un paramètre n'est pas requis. S'il est utilisé, tous les paramètres suivants dans arglist doivent également être facultatifs et déclarés à l'aide du mot clef facultatif. Tous les arguments facultatifs doivent être Variant. Facultatif ne peut être utilisé pour aucun paramètre si ParamArray est utilisé. |
ParamArray | Ce paramètre permet d'indiquer que le paramètre final est un tableau facultatif d'éléments Variant. Le mot clef ParamArray vous permet de fournir un nombre arbitraire de paramètres. Il ne peut pas être utilisé avec ByVal, ByRef ou Optional. Il faut l'utiliser uniquement comme dernier paramètre dans arglist. |
Exemple
Voici un exemple d'une utilisation typique de cette instruction :
on obtiendra le résultat suivant :
Fonction sans retour de valeur !
Dernière mise à jour : Lundi, le 19 novembre 2012