Comprendre les variables et les constantes dans les macros Excel

Dans cet article, vous apprendrez quelles sont les constantes et les variables dans les macros, où elles peuvent être utilisées et quelle est la principale différence entre les différents types de données. Il sera également révélé pourquoi les constantes sont nécessaires, si vous pouvez simplement écrire une variable et ne jamais la modifier.

Comme d'autres langages de programmation, les données peuvent être stockées dans des variables ou des constantes (qui sont également souvent appelées conteneurs de données). C'est la principale différence entre ces concepts. Le premier peut changer en fonction de ce qui se passe dans le programme. À leur tour, les constantes sont définies une fois et ne changent pas leur valeur.

Les constantes peuvent être utiles si vous devez utiliser plusieurs fois la même valeur élevée. Au lieu de copier le nombre, vous pouvez simplement écrire le nom de la constante. Par exemple, vous pouvez utiliser la constante "Pi" pour stocker Pi, qui est une valeur constante. Il est très volumineux et il est à chaque fois assez difficile de l'écrire ou de le rechercher et de le copier. Et donc, il suffit d'écrire deux caractères, et l'environnement utilise automatiquement le nombre souhaité.

L'utilisateur d'Excel doit déclarer des variables s'il a besoin de modifier de temps en temps la valeur qui y est stockée. Par exemple, vous pouvez définir une variable appelée sVAT_Rate, qui stockera le taux de TVA actuel pour le produit. S'il change, vous pouvez le corriger rapidement. Ceci est particulièrement utile pour ceux qui font des affaires aux États-Unis, où certains biens peuvent ne pas être soumis à la TVA (et cette taxe diffère également d'un État à l'autre).

Types de données

Chaque conteneur de données peut être de plusieurs types. Voici un tableau décrivant les types standards d'informations traitées. Il y en a beaucoup, et il peut sembler à un débutant qu'ils se répètent. Mais c'est un sentiment illusoire. Lisez la suite pour savoir pourquoi il est si important de spécifier le type de données correct.

Il n'est pas recommandé d'utiliser un type de données qui occupe plus d'espace en mémoire pour les petits nombres. Par exemple, pour le chiffre 1, il suffit d'utiliser le type Byte. Cela aura un effet positif sur les performances du module exécutable, en particulier sur les ordinateurs faibles. Mais il est important de ne pas aller trop loin ici. Si vous utilisez un type de données trop compact, une valeur surdimensionnée risque de ne pas y tenir.

Déclaration de constantes et de variables

L'utilisation d'un conteneur de données sans le déclarer au préalable est fortement déconseillée. Alors un certain nombre de problèmes peuvent survenir, pour les éviter il faut écrire quelques petites lignes de code avec énumération de variables ou de constantes.

Pour déclarer une variable, l'instruction Dim est utilisée. Par exemple, comme ceci :

Estomper le nom de la variable en tant qu'entier

Variable_Name est le nom de la variable. Ensuite, l'opérateur As est écrit, indiquant le type de données. Au lieu des chaînes "Variable_Name" et "Integer", vous pouvez insérer votre propre nom et type de données.

Les constantes peuvent également être déclarées, mais vous devez d'abord spécifier leur valeur. L'une des options est :

Const iMaxCount = 5000 XNUMX

En toute honnêteté, dans certains cas, vous pouvez vous passer de déclarer une variable, mais dans ce cas, le type Variant leur sera automatiquement attribué. Cependant, cela n'est pas recommandé pour les raisons suivantes :

  1. La variante est traitée beaucoup plus lentement, et s'il existe de nombreuses variables de ce type, le traitement de l'information peut être considérablement ralenti sur les ordinateurs faibles. Il semblerait que ces secondes décideront? Mais si vous devez écrire un grand nombre de lignes de code, puis l'exécuter également sur des ordinateurs faibles (qui sont toujours vendus, étant donné que les suites bureautiques modernes nécessitent beaucoup de RAM), vous pouvez complètement arrêter le travail. Il y a des cas où l'écriture mal conçue de macros a conduit au gel de smartbooks qui ont une petite quantité de RAM et ne sont pas conçus pour effectuer des tâches complexes. 
  2. Les fautes d'impression dans les noms sont autorisées, ce qui peut être évité en utilisant l'instruction Option Explicit, qui vous permet de trouver une variable non déclarée, le cas échéant. C'est un moyen facile de détecter les erreurs, car la moindre faute de frappe empêche l'interpréteur d'identifier la variable. Et si vous activez le mode de déclaration de variable, l'interpréteur ne vous permettra tout simplement pas d'exécuter la macro si des conteneurs de données sont trouvés qui n'ont pas été déclarés au tout début du module.
  3. Évitez les erreurs causées par des valeurs de variables ne correspondant pas au type de données. Normalement, l'attribution d'une valeur textuelle à une variable entière génère une erreur. Oui, d'une part, un type générique est attribué sans déclaration, mais s'il est déclaré à l'avance, des erreurs aléatoires peuvent être évitées.

Il est donc, malgré tout, fortement recommandé de déclarer toutes les variables dans les macros Excel.

Il y a encore une chose à garder à l'esprit lors de la déclaration des variables. Il est possible de ne pas affecter de valeurs à une variable lors de sa déclaration, mais dans ce cas elle acquiert une valeur par défaut. Par exemple:

  1. Les lignes sont rendues vides.
  2. Les nombres prennent la valeur 0.
  3. Les variables de type booléen sont initialement considérées comme fausses.
  4. La date par défaut est le 30 décembre 1899.

Par exemple, vous n'avez pas besoin d'affecter la valeur 0 à une variable entière si aucune valeur n'a été spécifiée précédemment. Elle contient déjà ce numéro.

Instruction explicite d'option

Cette instruction vous permet de déclarer toutes les variables utilisées dans le code VBA et de déterminer la présence de conteneurs non déclarés avant l'exécution du code. Pour utiliser cette fonctionnalité, écrivez simplement une ligne de code Option Explicit tout en haut du code de la macro.

Si vous devez inclure cette instruction dans votre code à chaque fois, vous pouvez le faire en utilisant un paramètre spécial dans l'éditeur VBA. Pour activer cette option, vous devez :

  1. Accédez à l'environnement de développement le long du chemin - Outils> Options.
  2. Dans la fenêtre qui s'ouvre après cela, ouvrez l'onglet Éditeur.
  3. Et enfin, cochez la case à côté de l'élément Exiger une déclaration de variable.

Une fois ces étapes terminées, cliquez sur le bouton "OK". 

Ça y est, maintenant lors de l'écriture de chaque nouvelle macro, cette ligne sera automatiquement insérée en haut du code.

Portée des constantes et des variables

Chaque variable ou constante n'a qu'une portée limitée. Cela dépend où vous le déclarez.

Supposons que nous ayons une fonction Coût total(), et il utilise la variable sVAT_Taux. Selon la position dans le module, il aura une portée différente :

Option explicite

Dim sVAT_Rate As Single

Fonction Total_Cost() comme double

.

.

.

Fonction de fin

Si une variable est déclarée en haut d'un module lui-même, elle se propage dans tout ce module. C'est-à-dire qu'il peut être lu par chaque procédure.

De plus, si l'une des procédures a changé la valeur de la variable, alors la suivante lira également cette valeur corrigée. Mais dans d'autres modules, cette variable ne sera toujours pas lue.

Option explicite

Fonction Total_Cost() comme double

Dim sVAT_Rate As Single

   .

   .

   .

Fonction de fin

Dans ce cas, la variable est déclarée à l'intérieur de la procédure, et l'interpréteur renverra une erreur si elle est utilisée dans une autre procédure.

Si vous souhaitez que la variable soit lue par d'autres modules, vous devez utiliser le mot-clé Public au lieu du mot-clé Dim. De même, vous pouvez limiter la portée d'une variable uniquement au module actuel en utilisant l'instruction Public, qui est écrite à la place du mot Dim.

Vous pouvez définir la portée des constantes de la même manière, mais le mot-clé ici est écrit avec l'opérateur Const.

Voici un tableau avec un bon exemple de la façon dont cela fonctionne avec des constantes et des variables.

Option explicite

Public sVAT_Rate As Single

Const publique iMax_Count = 5000

Dans cet exemple, vous pouvez voir comment le mot clé Public est utilisé pour déclarer une variable et ce que vous devez écrire dans l'éditeur Visual Basic pour déclarer une constante publique. La portée de ces conteneurs de valeurs s'applique à tous les modules.
Option explicite

Privé sVAT_Rate As Single

Const. privée iMax_Count = 5000

Ici, les variables et les constantes sont déclarées à l'aide du mot-clé Private. Cela signifie qu'ils ne peuvent être vus que dans le module en cours et que les procédures d'autres modules ne peuvent pas les utiliser.

Pourquoi les constantes et les variables sont nécessaires

L'utilisation de constantes et de variables vous permet d'augmenter le degré de compréhensibilité du code. Et si les débutants en général ne se demandent pas pourquoi les variables sont nécessaires, alors il existe de nombreuses ambiguïtés concernant le besoin de constantes. Et cette question semble, à première vue, assez logique. Après tout, vous pouvez déclarer une variable une fois et ne plus jamais la modifier.

La réponse s'avère être quelque part dans le même plan en ce qui concerne l'utilisation de types de données qui occupent un espace important en mémoire. Si nous avons affaire à un grand nombre de variables, nous pouvons accidentellement modifier un conteneur existant. Si l'utilisateur prescrit qu'une certaine valeur ne changera jamais, l'environnement la contrôlera automatiquement.

Ceci est particulièrement important lorsque la macro est écrite par plusieurs programmeurs. On peut savoir que certaines variables ne devraient pas changer. Et l'autre non. Si vous spécifiez l'opérateur Const, un autre développeur saura que cette valeur ne change pas.

Ou, s'il existe une constante avec un nom et que la variable a un nom différent mais similaire. Le développeur peut simplement les confondre. Par exemple, une variable qui n'a pas besoin d'être modifiée est appelée Variable11, et une autre qui peut être modifiée est appelée Variable1. Une personne peut automatiquement, lors de l'écriture de code, sauter accidentellement une unité supplémentaire et ne pas la remarquer. En conséquence, le conteneur de valeurs sera modifié, ce qui ne doit pas être touché.

Ou le développeur lui-même peut oublier quelles variables il peut toucher et lesquelles il ne peut pas. Cela se produit souvent lorsque le code est écrit pendant plusieurs semaines et que sa taille devient importante. Pendant ce temps, il est très facile d'oublier même ce que signifie telle ou telle variable.

Oui, vous pouvez faire des commentaires dans cette situation, mais n'est-il pas plus facile de spécifier le mot Const ?

Conclusions

Les variables sont un composant essentiel de la programmation macro, qui vous permettent d'effectuer des opérations complexes, des calculs à l'information de l'utilisateur sur certains événements ou la spécification de valeurs spécifiques dans les cellules d'une feuille de calcul.

Les constantes doivent être utilisées si le développeur sait avec certitude que le contenu de ces conteneurs ne changera pas à l'avenir. Il est recommandé de ne pas utiliser de variables à la place, car il est possible de faire accidentellement une erreur.

Soyez sympa! Laissez un commentaire