Présentation de la durée de vie des variables

La durée pendant laquelle une variable conserve sa valeur est appelée sa durée de vie. La valeur d’une variable peut changer au cours de sa durée de vie, mais elle conserve une valeur. Lorsqu’une variable perd son étendue, elle n’a plus de valeur.

Lorsque l’exécution d’une procédure est lancée, toutes les variables sont initialisées. Une variable numérique est initialisée à zéro, une chaîne de longueur variable est initialisée sur une chaîne de longueur nulle («  »), et une chaîne de longueur fixe est remplie avec le caractère représenté par le code de caractère ASCII 0 ou Chr( 0 ). Les variables variantes sont initialisées avec la valeur vide. Chaque élément d’une variable de type défini par l’utilisateur est initialisé comme s’il s’agissant d’une variable distincte.

Lorsque vous déclarez une variableobjet, l’espace est réservé en mémoire, mais sa valeur est définie sur Nothing jusqu’à ce que vous lui affectiez une référence d’objet à l’aide de l’instruction Set.

Si la valeur d’une variable n’est pas modifiée lors de l’exécution de votre code, elle conserve sa valeur d’initialisation jusqu’à ce qu’elle perde son étendue.

Une variable de niveau procédure déclarée avec l’instruction Dim conserve une valeur jusqu’à la fin de l’exécution de la procédure. Si la procédure appelle d’autres procédures, la variable conserve sa valeur jusqu’à la fin de l’exécution de ces procédures également.

Si une variable de niveau procédure est déclarée avec le mot clé Static, la variable conserve sa valeur tant que le code est en cours d’exécution dans n’importe quel module. Lorsque l’exécution du code est entièrement terminée, la variable perd son étendue et sa valeur. Sa durée de vie est la même que celle d’une variable de niveau de module.

Une variable de niveau de module est différente d’une variable statique. Dans un module standard ou d’un module de classe, elle conserve sa valeur jusqu’à ce que vous arrêtiez l’exécution du code. Dans un module de classe, elle conserve sa valeur tant qu’une instance de la classe existe. Les variables de niveau de module utilisent les ressources mémoire jusqu’à ce que vous réinitialisiez leurs valeurs, utilisez-les donc à bon escient.

Si vous incluez le mot clé Static avant une instruction Sub ou Function, les valeurs de toutes les variables de niveau procédure de la procédure sont conservées entre les appels.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.