Durée de vie des variables
Voir aussi Particularités
La période pendant laquelle une
variable conserve sa valeur correspond à sa durée de vie. La valeur d'une variable peut changer pendant sa durée de vie, mais elle conserve une certaine valeur. Lorsqu'une variable perd sa
portée, elle n'a plus de valeur.
Au début d'une
procédure, toutes les variables sont initialisées. Une variable numérique est initialisée à zéro, une chaîne de longueur variable est initialisée à une chaîne de longueur nulle (""), et une chaîne de longueur fixe est remplie du caractère représentant le code de caractères ASCII 0, ou
Chr(0
). Les variables de type
Variant prennent initialement la valeur
Empty. Chaque élément d'une variable d'un
type défini par l'utilisateur est initialisé comme s'il s'agissait d'une variable séparée.
Lorsque vous déclarez une
variable objet, de l'espace est réservé en mémoire, mais elle prend la valeur
Nothing jusqu'à ce que vous lui affectiez une référence d'objet à l'aide d'une instruction
Set.
Si la valeur d'une variable n'est pas modifiée pendant l'exécution de votre code, elle conserve sa valeur initialisée jusqu'à ce qu'elle perde sa portée.
Une variable de
niveau procédure déclarée avec l'instruction
Dim conserve une valeur jusqu'à la fin de la procédure. Si la procédure appelle d'autres procédures, la variable conserve également sa valeur pendant l'exécution de ces procédures.
Si une variable de niveau procédure est déclarée avec le mot clé
Static, elle conserve sa valeur tant que le code est exécuté dans un
module. À la fin de l'exécution du code, la variable perd sa portée et sa valeur. Sa durée de vie est identique à celle d'une variable de
niveau module.
Une variable de niveau module diffère d'une variable statique. Dans un
module standard ou un
module de classe, elle conserve sa valeur jusqu'à ce que vous arrêtiez le code. Dans un module de classe, elle conserve sa valeur tant qu'existe une instance de la classe. Les variables de niveau module utilisant des ressources mémoire jusqu'à la réinitialisation de leurs valeurs, il convient de les utiliser uniquement lorsque cela est nécessaire.
Si vous incluez le mot clé
Static avant une instruction
Sub ou
Function, les valeurs de toutes les variables de niveau procédure dans la procédure sont conservées entre les appels.