Variables globales VBA - Comment déclarer une variable globale dans VBA?

Table des matières

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 en tant que 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 bien les utiliser, 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 et 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 à l'aide de «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.

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

Comme le montre l'image ci-dessus, la variable «k», 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 moyens 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. Pour 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 exprimé la variable «MyNumber» comme un entier 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 dans le 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», 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. Ce qui est intéressant, c'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.

Pour 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 nom «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 dont il faut se rappeler

  • Une fois que la macro Excel s'exécute avec la valeur d'une variable globale, 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.

Articles intéressants...