Les variables sont généralement déclarées avec le mot-clé Dim. Cependant, dans certains cas, il peut être utile de les déclarer avec le mot-clé Static.
Lorsqu’une variable est déclarée avec le mot-clé Static dans une procédure ou une fonction, sa valeur est conservée à la fin de la procédure ou la fonction. Lorsque la procédure ou la fonction est à nouveau exécutée, la variable Static reprend la valeur qui avait été mémorisée.
Voici un exemple de code pour mieux comprendre le fonctionnement des variables Static :
Sub Incremente() Static i As Integer i = i + 1 Cells(i, 2) = i End Sub
Ici, la variable Static i de type Integer est définie dans la procédure Incremente().
Lors de la première exécution de la procédure :
- La variable i vaut 0.
- La deuxième instruction incrémente la variable i. Elle vaut donc 1.
- La troisième instruction affiche la valeur de i dans la cellule à l’intersection de la ligne i et de la deuxième colonne. La cellule B1 contient donc la valeur 1.
Lors de la deuxième exécution de la procédure :
- Comme la variable i est statique, elle conserve la valeur qu’elle lors de la première exécution : 1.
- La deuxième instruction l’incrémente. Elle vaut donc 2.
- La troisième instruction affiche la valeur de i (2) dans la cellule à l’intersection de la ligne i (2) et de la deuxième colonne. La valeur 2 apparait donc dans la cellule B2.
Ainsi de suite. Ici, le code a été exécuté 6 fois. Voici le résultat :