VBA Variables 1

Types de variables

Partie 1


Toute programmation commence par la compréhension de ce qu'est une variable, de ce qu'elle peut contenir, de son utilité, de sa durée de vie et de sa portée.

Tout de suite après va arriver la notion de déclaration des variables.
VBA est un langage qui tolère (semble tolérer on le verra plus loin) de ne pas avoir à déclarer explicitement les variables, je reviendrai sur ce sujet dans la page, car c'est une fausse bonne idée à mes yeux.

C'est quoi une variable.

Dans l'apparence du logiciel de programmation, c'est un simple mot dont le sens est en rapport avec ce qu'elle va contenir, je reviendrai sur le nommage des variables.

C'est, comme son nom l'indique, une "variable" est variable, c’est-à-dire que ce qu'elle va contenir va subir des modifications. Par exemple on peut avoir une variable "mess" qui va contenir un message que le programme devra injecter dans une case de dialogue.
En résumé une variable se définit comme un emplacement de stockage dans la mémoire de l'ordinateur qui contient des informations temporaires.
C'est typiquement ce qu'on nomme une bonne pratique.

Comment nommer une variable.

Donner un nom semble évident, mais doit être réfléchi, en effet le nom de la variable sert à l'utilisateur à se situer dans le programme et de ce fait son nom sert de fil d'Ariane tout au long du programme.
Exemple : pour nommer une variable qui sera utilisée pour stocker le rayon d'un cercle, la nommer Rayon est une bonne chose, dans les opérations futures de calcul de superficie il sera aisé de comprendre "rayon multiplié par rayon multiplié par 3.14159".
La nommer blabla fonctionnera aussi bien, mais l'opération :
"blabla multiplié par blabla multiplié par 3.14159" est beaucoup moins facile à comprendre par l'humain, l'ordinateur lui il s'en fiche dans tous les cas.

Il y a toutefois quelques règles :
Le nom de la variable ne doit pas commencer par un chiffre
Le nom de la variable peut contenir un (ou des) chiffre(s) tant que l'initiale est une lettre
Le nom de la variable ne doit pas contenir d'espaces, de point, de $ #, de point d’exclamation, de virgule, ni @ ou &.
Le nom de la variable ne doit pas être un mot réservé utilisé par VBA.
Une règle non écrite : utiliser l'anglais, mais pour un usage personnel le français fonctionne bien
Si utilisation du français éviter les accents, ça fonctionne, mais on n'est sûr de rien et c'est un risque.
Utiliser underscore tiret bas pour séparer les mots, exemple : Rayon_Action est correct.
Ne pas utiliser plus de 255 caractères (si vous vous sentez une âme de dactylographe).
Liste non exhaustive, mais c'est déjà une bonne indication des limites sachant que le nom des variables n'est pas sensible à la casse.

Déclarer une variable.

Le premier mot clé (instruction) pour donner l'ordre à l'IDE de typer une variable est Dim, suivi de As.
Dans le sens du nom de cette instruction on comprend déjà que ce n'est pas anodin, le sens que je donne n'est pas avéré, mais il permet d'en comprendre l'esprit,
je propose pour le mémoriser
Declare In Memory.
Ce n'est pas réellement avéré, car ce Dim daterait plutôt du langage BASIC et semble-t-il, servait à déclarer une "dimension" pour des tableaux, fin de la digression.

Syntaxe :
Dim Nom_Var As String, pour déclarer que "Nom_Var" va contenir une chaine de caractères

Les autres instructions en plus de Dim, sont Private, Public, Static ou encore ReDim, il en sera question plus tard.

Dans les faits, le programme ne travaille pas avec le "texte" qu'on voit à l'écran de l'IDE qui ne sert qu'à permettre de dialoguer avec l'ordinateur dans un langage compréhensible par les humains.
L'ordinateur ne comprend fichtrement rien à ces successions de lettres ayant un sens pour nous, il transforme le tout en 0 et 1 en les plaçant dans des endroits, que lui seul connaît, dans les méandres de sa "mémoire" et à la fin quand tout est bien rangé il (l'ordinateur) trouve un sens à cette prose d"posée par l'humain et il peut en faire ce qu'on attend de lui.
Si une variable est déclarée, il sait ce qu'il peut faire avec les nombres ou les textes ou les valeurs vrai/faux et il gagnera du temps.

 - Si une variable est déclarée et qu'on lui demande de faire quelque chose d'impossible il (toujours l'ordinateur) saura que ce n'est possible et guidera l'humain sur la façon de corriger le programme, mais seulement si elle est déclarée.

 - Si une variable n'est pas déclarée, ça fonctionnera plus lentement, car l'ordinateur devra vérifier à tout moment ce qu'il a droit de faire avec ce qu'il trouve dans la variable et en cas d'impossibilité ne saura pas efficacement assister l'humain pour corriger le programme.

Obliger l'utilisateur à déclarer les variables.

En début de module avant toute procédure il est possible d'obliger la déclaration des variables en tapant :  Option Explicit
la présence de cette ligne va vérifier que chaque variable est déclarée et si le programmeur tente d’utiliser un nom de variable non déclarée, une erreur se produit au moment du lancement du programme où il est encore temps de réagir et corriger.

Il est possible en passant par les options de l'IDE de choisir de cocher la case
Déclaration des variables obligatoire comme ceci :

Une fois que cette case est cochée, l'option Explicit sera désormais automatiquement utilisée par l'IDE, il est à noter qu'elle n'est pas rétroactive, autrement dit ce qui a été fait avant n'est pas déclaré avec Option Explicit et devra être déclaré "à la main".

Si on n'utilise pas l’instruction Option Explicit, toutes les variables non déclarées sont de type Variant (sauf quelques exceptions dont je ne parlerai pas tout de suite).
Ce qu'il faut retenir (à mon avis) :  Ne pas déclarer les variables est une source de risque d'erreur, de ralentissement du programme et d'une mauvaise utilisation de la mémoire.