1. Variables
Pour ce qui est des noms de variables, VB ne fait que dans le très classique. Voyez donc :
- Les noms de variables n’ont pas de longueur maximale
- Ils doivent commencer par un caractère
- Ils ne doivent pas comporter d’espace
- Ils ne sont pas sensibles à la casse (Toto et toto sont la même variable)
En ce qui concerne la déclaration de ces variables, celle-ci est optionnelle (en tout cas pour les variables locales, on reparlera dans un instant de cet aspect). Cela signifie que dans l’option par défaut, il n’est pas besoin de déclarer les variables pour s’en servir. Dans le cadre d’une grosse application, on devra activer l’option de déclaration des variables, ce qui permettra de gagner de l’espace mémoire (car les variables se déclarent par défaut avec le type le plus gourmand en mémoire, on y reviendra).
Pour les types des variables, c'est tout pareil, rien que du très ordinaire et sans aucune surprise :
- Boolean : True – False
- Byte : de 0 à 255
- Integer : de –32 768 à 32 767
- Long : de –2 à +2 milliards environ
- Single : virgule flottante simple précision
- Double : virgule flottante double précision
- Currency : entier en virgule fixe
- String : jusqu’à 65 000 caractères
Enfin, l'instruction d’affectation est le signe égal ( = ).
- Déclaration, or not déclaration ?
On vient de voir que VB offrait la possibilité de déclarer ou non les variables (en tout cas, les variables locales). Mais, dans l’hypothèse de non déclaration systématique des variables, nous avions pudiquement glissé sur ce qui se passe lorsqu’une variable non déclarée est utilisée…
En fait, cette variable est automatiquement créée dans un type spécial : le type « Variant ». Ce type possède comme particularité d’être "souple", à savoir de pouvoir s’ajuster à n’importe quel contenu (caractère, booléen, n’importe quel sous-type de numérique). le type variant n’en demeure pas moins un peu plus gourmand en mémoire vive occupée.
Donc, si dans le cadre d’un petit exercice, on peut se permettre de ne pas déclarer ses variables, ce n’est pas le cas dans un projet, où l’accumulation des variables de type Variant peut conduire à de graves dysfonctionnements.
L’existence d’une variable peut se dérouler sur trois niveaux :
- Niveau Procédure : cela veut dire que la variable est locale. Dès que l’on quitte la procédure en question, la variable disparaît, et son contenu avec elle. Pour déclarer une variable au niveau procédure, on tape au sein de la procédure considérée :
Dim NomVariable as Type
- Niveau Form : la variable est disponible pour toutes les procédures de la Form , mais pas pour les procédures se situant sur une autre Form. Pour déclarer une variable au niveau Form, on tape tout en haut de la Form, à l’extérieur des procédures :
Dim NomVariable as Type
Non, ce n’est pas une erreur, c’est bien la même chose que précédemment. Mais l’emplacement de l’instruction n’est pas le même, et c’est cela qui change tout.
-
Niveau Projet : la variable est disponible, et sa valeur est conservée pour toutes les procédures de l’application, quel que soit leur emplacement. Pour déclarer une variable globale, il faut d’abord créer un module. Un module est un type de feuille destiné uniquement à recevoir du code, et qui n’a donc pas, contrairement aux Form, d’apparence graphique. C’est dans un module qu’on écrit la procédure principale, lorsqu’on en veut une, et qui de là pilote les différentes Form, elles mêmes donnant accès aux procédures liés aux objets qu’elles contiennent. Sur ce module, donc, on écrit :
Public NomVariable as Type
Naturellement, est-il besoin de le préciser, il ne faut pas raisonner en termes d’artillerie lourde, et déclarer toutes les variables au niveau projet, en se disant que comme ça, on est blindé : car ce blindage, par l’excès de place mémoire, ralentira votre application, au besoin considérablement. Il faut donc pour chaque variable se demander à quel niveau on en a besoin, et faire les déclarations en fonction.
1.3 Variables indicées
On appelle aussi cela des tableaux ! Ce peut être des tableaux de nombres, de chaînes, de booléens, bref, de tout ce qu’on veut. Quant on crée un tableau, soit on sait d’avance combien d’éléments il va englober, soit on veut qu’il soit dynamique (mais cela se paye bien sûr par une perte de rapidité à l’exécution). Tout tableau doit obligatoirement être déclaré, quel que soit par ailleurs le réglage de l’option de déclaration des variables.
Pour créer un tableau de 12 entiers, on écrira :
Dim MonTableau(11) As Integer
Pour créer un tableau élastique (pour faire plus classe, ne dites pas « élastique », dites « dynamique »), on écrira :
Dim MonTableau() As Integer
Ensuite, dès qu’on veut en fixer la taille, on écrit dans le code :
Redim MonTableau(11)
Si ce redimensionnement doit s’effectuer en conservant les valeurs précédemment entrées dans le tableau, on ajoutera le mot-clé Preserve :
Redim Preserve MonTableau(11)
En résumé, aucun problème spécifique ici que vous n’ayez déjà abordé sur un langage précédent (le C, par exemple, à tout hasard).
|