Variables globales VBA

Certaines fonctions sont définies à l'intérieur d'une fonction et sont utilisées dans les fonctions et certaines variables sont définies en dehors des fonctions et sont utilisées par toutes les fonctions et ces variables sont utilisées comme des variables globales, par exemple, les variables déclarées sous la sous-fonction sont connues sous le nom de variables globales.

Variable globale dans Excel VBA

Déclarer une variable semble assez simple, mais pour avoir de bonnes mains, nous devons comprendre la portée de ces variables. Souvent, nous déclarons les variables pour chaque macro dans la sous-procédure à chaque fois. Mais en déclarant une variable, nous pouvons l'utiliser dans toutes les macros du même module ainsi que dans les autres modules du projet VBA actuel. Dans cet article, nous allons vous montrer comment déclarer des variables globales dans Excel VBA.

Que sont les variables globales dans Excel VBA?

Les variables globales VBA sont des variables qui sont déclarées avant le début de toute macro dans le module. Lorsque les variables sont déclarées en utilisant «Public» ou «Global», cela devient «Global Variable».

Les variables de sous-procédure ne peuvent pas être utilisées n'importe où

Nous déclarons généralement la variable à l'intérieur du sous-programme dans vba en utilisant le mot «Dim».

Regardez l'image ci-dessus, j'ai déclaré la variable «k» comme un entier dans la sous-procédure Global_Example1.

Si nous utilisons cette variable dans cette procédure Sub à tout moment. Cependant, je ne peux pas utiliser cette variable dans une autre sous-procédure dans le même module de classe dans VBA ou dans un autre module.

Comme le montre l'image ci-dessus, la variable «k» qui est déclarée dans la sous-procédure Global_Example1 ne peut pas être utilisée dans la sous-procédure Global_Example2.

De même, la variable «j» déclarée dans la sous-procédure Global_Example2 ne peut pas être utilisée dans la sous-procédure Global_Example1 même si les deux sous-procédures sont dans le même module.

Comment déclarer une variable globale dans VBA?

Voici les façons de déclarer une variable globale dans Excel VBA.

# 1 - Les variables de module peuvent être utilisées dans n'importe quelle sous-procédure du même module

Comme nous l'avons vu, nous ne pouvons utiliser les variables de sous-procédure dans aucun des modules. Afin de les rendre disponibles pour toute la procédure Sub dans le même module, nous devons déclarer les variables en haut du module.

Dans l'image ci-dessus, j'ai déclaré la variable au début du module uniquement. J'ai déclaré la variable «MyNumber» comme Integer dans le module 1 .

Une fois la variable déclarée en haut du module, nous pouvons utiliser la même variable pour toutes les autres procédures Sub du même module, dans ce cas, nous pouvons utiliser la variable «MyNumber» pour toutes les procédures Sub du module 1.

Le problème est que nous ne pouvons les utiliser dans aucun des autres modules. Dans ce cas, la variable «MyNumber» qui est déclarée dans le module 1 ne peut pas être utilisée dans le module 2.

 # 2 - Les variables globales peuvent être utilisées dans n'importe quelle procédure secondaire et aussi dans n'importe quel module

Nous avons maintenant vu deux types de déclaration de variable et leur portée lors de l'utilisation. La chose intéressante est que nous pouvons déclarer la variable dans n'importe lequel des modules et l'utiliser pour toutes les procédures Sub dans tous les modules du même projet VBA.

Afin de rendre la variable disponible pour toutes les procédures Sub dans tous les modules, nous devons déclarer la variable en haut du module non pas en utilisant le mot «Dim» mais en utilisant le mot «Public» ou «Global».

Dans l'image ci-dessus, vous pouvez voir que j'ai utilisé le mot «Public» pour déclarer la variable au lieu de notre mot vétéran «Dim».

Dans la capture d'écran ci-dessus, j'ai déclaré la variable dans le module 1. J'ai deux autres modules nommés Module 2 et Module 3.

Depuis que j'ai déclaré la variable en utilisant le mot «Public» en haut du module, je peux maintenant accéder à ces variables dans n'importe quelle sous-procédure dans n'importe quel module du même classeur.

Non seulement «Public», mais nous pouvons également utiliser le mot «Global» pour déclarer la variable.

Global & Public sont les deux mots clés pour déclarer la variable et les rendre disponibles à travers les modules de VBA.

Choses à retenir

  • Une fois que la macro Excel s'exécute avec une variable globale, la valeur de la variable est la même dans toutes les procédures Sub.
  • Il est préférable de maintenir un module particulier pour déclarer des variables globales dans VBA et avoir toutes les variables dans un module.
  • La seule façon de réinitialiser la valeur de la variable est de réinitialiser le code de macro en appuyant sur le bouton d'arrêt.