Macros-commandes VBA/Manipulation des variables

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Manipulation des variables
Icône de la faculté
Chapitre no 5
Leçon : Macros-commandes VBA
Chap. préc. :Les types en VB
Chap. suiv. :Conditionnelles et boucles
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Macros-commandes VBA : Manipulation des variables
Macros-commandes VBA/Manipulation des variables
 », n'a pu être restituée correctement ci-dessus.

Déclaration des variables[modifier | modifier le wikicode]

Syntaxe[modifier | modifier le wikicode]

Une variable VB doit porter un nom commençant par une lettre et ne devant pas comporter certains caractères spéciaux :

  • espace
  • ! (réservé aux Single)
  • # (réservé aux Double)
  • % (réservé aux Integer)
  • $ (réservé aux String)
  • & (réservé aux Long)
  • @

Chaque fois que l’on voudra utiliser une nouvelle variable, il est fortement conseillé de la déclarer dans la feuille de code pour signaler au compilateur avec quoi il travaille et quelle place allouer à la mémoire pour gérer ces variables.

Début de l'exemple
Fin de l'exemple


Portée[modifier | modifier le wikicode]

Une variable VB peut avoir trois portées différentes.

  • Le niveau procédure, le plus fin, qui permet de limiter l’existence de la variable à la fonction ou procédure en cours.
  • Le niveau formulaire permet l'accès à la variable à toutes les procédures d’un même formulaire.
  • Le niveau projet permettant d'accéder au contenu de la variable dans toute l'application.


Début de l'exemple
Fin de l'exemple


Opérations possibles sur les variables[modifier | modifier le wikicode]

Affectation[modifier | modifier le wikicode]

Pour donner une valeur à une variable, on utilise le signe =

Début de l'exemple
Fin de l'exemple


Opérations mathématiques[modifier | modifier le wikicode]

Usuelles[modifier | modifier le wikicode]

  • Les opérations usuelles (addition, soustraction, multiplication, division) s'écrivent en VB avec leurs symboles usuels.
Début de l'exemple
Fin de l'exemple


  • Pour le type Integer, le reste de la division euclidienne est accessible avec l'instruction Mod
Début de l'exemple
Fin de l'exemple


  • VB dispose également par défaut d'une petite bibliothèque de fonctions mathématiques standard :
Nom Description
Cos Cosinus de l'angle (en radians)
Sin Sinus de l'angle (en radians)
Tan Tangente de l'angle (en radians)
Exp Exponentielle (en base e)
Log Logarithme népérien
Sqr Racine carrée

Ces fonctions retournent un résultat du type Double.

Comparer deux nombres[modifier | modifier le wikicode]

MsgBox Application.WorksheetFunction.Min(2, 3) ' = 2
MsgBox Application.WorksheetFunction.Max(2, 3) ' = 3

Arrondir un nombre[modifier | modifier le wikicode]

Il existe par défaut quatre fonctions pour arrondir :

Sub arrondir()
    a = "5,5"
    MsgBox Int(a)       ' 5
    MsgBox Fix(a)       ' 5
    MsgBox Round(a)     ' 6
    MsgBox Format(a, 0) ' 6
End Sub

Sub arrondir2()
    a = "5,4"
    MsgBox Int(a)       ' 5
    MsgBox Fix(a)       ' 5
    MsgBox Round(a)     ' 5
    MsgBox Format(a, 0) ' 5
End Sub
Au supérieur[modifier | modifier le wikicode]
a = 1,33
msgbox round(a+0.5)
À l'inférieur[modifier | modifier le wikicode]
a = 1,66
msgbox round(a-0.5)

Opérations logiques[modifier | modifier le wikicode]

Les opérations logiques se font en temps normal sur des variables de type Boolean.

VB connaît les principales opérations :

  • Not : opérateur NON
  • And : opérateur ET
  • Or : opérateur OU
  • Xor : opérateur OU exclusif
Début de l'exemple
Fin de l'exemple


Comparaison[modifier | modifier le wikicode]

VB sait comparer :

  • deux variables numériques (2 > 1).
  • deux chaînes de caractères, l’ordre étant celui du codage ASCII par défaut (B > A et a > A).

Les opérateurs de comparaison sont les suivants :

Opérateur Signification
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal
= Égal
<> Différent
Début de l'exemple
Fin de l'exemple


Panneau d’avertissement Les chaines de caractères contenant des nombres ne sont pas converties automatiquement en nombre lors des comparaisons :
a = "1"
MsgBox a > 2         ' True
MsgBox 1 > 2         ' False
MsgBox CInt("1") > 2 ' False

Opérations sur les chaînes de caractères[modifier | modifier le wikicode]

Longueur de la chaîne[modifier | modifier le wikicode]

La longueur d'une chaîne de caractères est accessible grâce à l'instruction Len.

Début de l'exemple
Fin de l'exemple


Concaténation[modifier | modifier le wikicode]

Concaténer deux chaînes de caractères est l'opération qui consiste à les mettre bout à bout. De manière très intuitive, cette opération peut se faire en VB grâce à deux opérateurs : + et &.

Début de l'exemple
Fin de l'exemple


Suppression des espaces latéraux[modifier | modifier le wikicode]

VB dispose de trois fonctions permettant de s'affranchir des espaces inutiles aux extrémités des chaînes de caractères :

  • LTrim$ (L comme Left), qui retire les espaces inutiles à gauche de la chaîne
  • RTrim$ (R comme Right), qui retire les espaces inutiles à droite de la chaîne
  • Trim$, qui retire les espaces inutiles à droite et à gauche de la chaîne
Début de l'exemple
Fin de l'exemple


Changement de casse[modifier | modifier le wikicode]

Il existe deux fonctions qui permettent d'harmoniser la casse d'une chaîne :

  • LCase$ (comme Lower Case), qui permet d'obtenir la chaîne en minuscules
  • UCase$ (comme Upper Case), qui permet d'obtenir la chaîne en majuscules
Début de l'exemple
Fin de l'exemple


Extraction d'une sous-chaîne[modifier | modifier le wikicode]

On peut facilement extraire des sous-chaînes en VB de trois manières :

  • Left$: permet d'extraire les caractères les plus à gauche de la chaîne
  • Right$: permet d'extraire les caractères les plus à droite de la chaîne
  • Mid$: permet d'extraire une sous-chaîne intérieure
Début de l'exemple
Fin de l'exemple


Recherche d'une sous-chaîne[modifier | modifier le wikicode]

VB permet de trouver la position de la première occurrence d'une chaîne dans une autre chaîne grâce à l'instruction InStr.

Début de l'exemple
Fin de l'exemple


Valeur numérique[modifier | modifier le wikicode]

L'instruction Val permet d'extraire un nombre présent au début d'une chaîne de caractères.

Début de l'exemple
Fin de l'exemple


Opérations sur les dates[modifier | modifier le wikicode]

Quand on manipule des dates, pour éviter de convertir et rechercher si nous devons changer de mois le 30 ou le 31, il existe des fonctions prédéfinies[1] :

  1. DatePart() : extrait une partie de date (jour, heures...)
  2. DateAdd() : ajoute une durée.
  3. DateDiff() : calcule une différence entre deux dates.

Influence du typage sur le contenu des variables[modifier | modifier le wikicode]

Contrairement à d'autres langages, VB fait preuve d’un certain laxisme envers le typage des variables. Ce peut être un avantage comme un inconvénient.

Début de l'exemple
Fin de l'exemple


Toutefois, cette souplesse se manifeste avec certains opérateurs et pas d'autres.

Début de l'exemple
Fin de l'exemple


Variables publiques connues[modifier | modifier le wikicode]

Certaines variables sont propres aux logiciels, par exemple dans Excel : xlDown, xlUp, xlToLeft, xlToRight renvoient toujours les limites de la feuille courante (respectivement en bas, haut, gauche et droite).

Références[modifier | modifier le wikicode]

  1. http://www.commentcamarche.net/contents/vbscript/vbs-fonctions-date.php3