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.