Instruction d'assignation
Expressions
Opérateurs
Il y a plusieurs façons d'assigner une valeur à une variable.
Les plus utilisées
en VBA sont les instructions d'assignation Let et Set.
Set nom = {[New] expression | Nothing} nom Nom de la variable ou propriété d'objet qui
contiendra l'objet. Si New est absent, cette instruction d'assignation évalue expression et donne le nom nom à l'objet résultant. Donc nom et expression désignent LE MÊME objet. Si New est présent, cette instruction crée un nouvel objet de la classe d'expression nommé nom. Donc nom et expression désignent deux objets DIFFÉRENTS. |
D'autres instructions peuvent aussi assigner une valeur à une variable:
For, Input, Read, Get, ...
Comme dans tout langage de programmation, les expressions VBA sont composées de variables, de propriétés d'objet, de constantes et/ou de fonctions, liées par des opérateurs et des parenthèses.
Tout ce que VBA peut évaluer est une expression et peut faire partie d'une expression.
Les règles sont presque identiques à celles des formules Excel.
Le résultat de l'évaluation d'une expression est la valeur de l'expression, dont
le type dépend des éléments composant
l'expression.
La valeur d'une expression peut être Null.
ATTENTION: lorsqu'on mélange les types à l'intérieur d'une expression, VBA convertit automatiquement les valeurs dans les types qui SEMBLENT les plus appropriés. Si la plupart du temps, le résultat est correct, il ne l'est pas toujours.
VBA ne détecte aucune erreur dans le programme à droite et il s'exécute correctement.
|
Sub exemple() Dim sNombre As String sNombre = 22 sNombre = sNombre + 2 End Sub |
VBA ne détecte aucune erreur dans le programme à droite mais une erreur
"Incompatibilité de type" se produit à l'exécution
|
Sub exemple() Dim sNombre As String sNombre = "Ving deux" sNombre = sNombre + 2 End Sub |
Il est beaucoup plus prudent de vous assurer que les types des éléments de l'expression soient explicites.
Sub exemple()
End Sub |
Sub exemple()
End Sub |
ou utilisez les fonctions de conversion.
Dans les expressions VBA, vous pouvez utiliser les opérateurs suivants:
Opérateurs arithmétiques
Ces opérateurs combinent deux expressions numériques et retournent une
expression numérique.
+ | Addition |
- | Soustraction |
* | Multiplication |
/ | Division |
\ | Division |
MOD | Reste de division |
^ | Exposant |
Opérateurs de comparaison
Ces opérateurs comparent deux expressions numériques et retournent
Vrai ou Faux (type Boolean).
= | Égal à |
> | Supérieur à |
< | Inférieur à |
>= | Supérieur ou égal à |
<= | Inférieur ou égal à |
<> | Différent de |
Opérateurs de concaténation de texte
Ces opérateurs comparent deux expressions
String et retournent une expression
String.
& combiner (concaténer) deux Strings
+ combiner (concaténer) deux Strings ou en additionne les valeurs.
L'utilisation de + pour concaténer deux expressions
crée une confusion
inacceptable et doit être évitée à tout prix.
Opérateurs logiques
Ces opérateurs retournent une expression
Boolean.
Pour tester si une expression vaut Null, utiliser la fonction
IsNull().
Si une des expressions n'est pas de type Boolean, VBA convertit l'expression de
la façon suivante:
0 donne Faux, et toute autre valeur donne Vrai (Not Faux).
And |
(Vrai AND Vrai) donne Vrai (Vrai AND Faux) donne Faux (Vrai AND Null) donne Null (Faux AND Vrai ) donne Faux (Faux AND Faux) donne Faux (Faux AND Null) donne Faux (Null AND Vrai ) donne Null (Null AND Faux) donne Faux (Null AND Null) donne Null |
Or |
(Vrai OR Vrai) donne Vrai (Vrai OR Faux) donne Vrai (Vrai OR Null) donne Vrai (Faux OR Vrai ) donne Vrai (Faux OR Faux) donne Faux (Faux OR Null) donne Null (Null OR Vrai ) donne Vrai (Null OR Faux) donne Null (Null OR Null) donne Null |
Xor |
(Vrai XOR Vrai) donne Faux (Vrai XOR Faux) donne Vrai (Vrai XOR Null) donne Null (Faux XOR Vrai ) donne Vrai (Faux XOR Faux) donne Faux (Faux XOR Null) donne Null (Null XOR Vrai ) donne Null (Null XOR Faux) donne Null (Null XOR Null) donne Null |
Not |
(NOT Vrai) donne Faux (NOT Faux) donne Vrai (NOT Null) donne Null IsNull(Null) donne Vrai NOT IsNull(Null) donne Faux |
Eqv | Voir l'aide VBA |
Imp | Voir l'aide VBA |
ATTENTION: Contrairement à ce qu'on peut penser, (NOT Null) retourne
Null.
Pour tester si une expression vaut Null, on utilise le plus souvent
IF NOT IsNull(expression) THEN ...
L'opérateur TypeOf retourne aussi une valeur Boolean:
TypeOf variable Is
expression Où variable est le nom d'une variable objet. TypeOf vaut Vrai si variable est de type expression et vaut Faux dans les autres cas. Voir TypeName() |
Abonnez-vous à l'infolettre Abonnez-vous à l'infolettre du site pour recevoir les dernières nouvelles et aussi des formations à votre courriel. Vous pouvez voir la liste des dernières infolettres ici. |