Chaîne VBA et opérateurs de comparaison. Opérateurs logiques VBA Opérateurs logiques VBA

Lors de l'écriture de code VBA dans Excel, un ensemble d'opérateurs intégrés est utilisé à chaque étape. Ces opérateurs sont divisés en opérateurs mathématiques, de chaîne, de comparaison et logiques. Ensuite, nous examinerons de plus près chaque groupe d'opérateurs.

Opérateurs mathématiques

Les opérateurs mathématiques de base en VBA sont répertoriés dans le tableau ci-dessous.

La colonne de droite du tableau indique la priorité par défaut des opérateurs en l'absence de parenthèses. En ajoutant des parenthèses à une expression, vous pouvez modifier l'ordre d'exécution des instructions VBA à votre guise.

Opérateurs de chaîne

L'opérateur de chaîne principal dans Excel VBA est l'opérateur de concaténation & (fusionner):

Opérateurs de comparaison

Les opérateurs de comparaison sont utilisés pour comparer deux nombres ou chaînes et renvoyer une valeur booléenne comme booléen(Vrai ou faux). Les principaux opérateurs de comparaison Excel VBA sont répertoriés dans ce tableau :

Opérateurs logiques

Les opérateurs logiques, comme les opérateurs de comparaison, renvoient une valeur booléenne du type booléen(Vrai ou faux). Les opérateurs booléens Excel VBA de base sont répertoriés dans le tableau ci-dessous :

Le tableau ci-dessus ne répertorie pas tous les opérateurs logiques disponibles dans VBA. Une liste complète des opérateurs logiques est disponible sur le Centre de développement Visual Basic.

Fonctions intégrées

Il existe de nombreuses fonctions intégrées disponibles dans VBA qui peuvent être utilisées lors de l'écriture de code. Certains des plus couramment utilisés sont énumérés ci-dessous :

Une fonction Acte
Abdos Renvoie la valeur absolue du nombre spécifié.
  • Abdominaux (-20) renvoie la valeur 20 ;
  • Abdos (20) renvoie la valeur 20.
Chr Renvoie le caractère ANSI correspondant à la valeur numérique du paramètre.
  • Chr (10) renvoie un saut de ligne ;
  • Chr (97) renvoie le caractère une.
Date Renvoie la date système actuelle.
DateAjouter Ajoute un intervalle de temps spécifié à une date spécifiée. Syntaxe de la fonction :

DateAjouter ( intervalle , numéro , Date )

Où est l'argument intervalle définit le type d'intervalle de temps ajouté à la donnée Date dans le montant spécifié dans l'argument numéro .

Argument intervalle peut prendre l'une des valeurs suivantes :

  • DateAjouter (« j », 32, « 01/01/2015 ») ajoute 32 jours à la date du 01/01/2015 et renvoie ainsi la date du 02/02/2015.
  • DateAjouter ("ww", 36, "01/01/2015") ajoute 36 semaines au 01/01/2015 et renvoie le 09/09/2015.
DateDiff Calcule le nombre d'intervalles de temps spécifiés entre deux dates spécifiées.
  • DateDiff (« j », « 01/01/2015 », « 02/02/2015 ») calcule le nombre de jours entre le 01/01/2015 et le 02/02/2015, renvoie 32.
  • DateDiff ("ww", "01/01/2015", "03/03/2016") calcule le nombre de semaines entre le 01/01/2015 et le 03/03/2016, renvoie 61.
Jour Renvoie un entier correspondant au jour du mois à la date spécifiée.

Exemple: Jour ("29/01/2015") renvoie le numéro 29.

Heure Renvoie un entier représentant le nombre d'heures à un moment donné.

Exemple: Heure ("22:45:00") renvoie le nombre 22.

InStr Accepte un entier et deux chaînes comme arguments. Renvoie la position d'occurrence de la deuxième chaîne dans la première, en commençant la recherche à la position spécifiée par un entier.
  • InStr (1, "C'est le mot que vous recherchez", "mot") renvoie le nombre 13.
  • InStr (14, "Voici le mot recherché, et voici le mot recherché," "mot") renvoie 38.

Noter: L'argument nombre peut ne pas être spécifié, auquel cas la recherche commence au premier caractère de la chaîne spécifiée dans le deuxième argument de fonction.

Int Renvoie la partie entière du nombre spécifié.

Exemple: Int (5.79) renvoie le résultat 5.

Isdate Retour Vrai si la valeur donnée est une date, ou Faux- si la date ne l'est pas.
  • IsDate (« 01/01/2015 ») Retour Vrai;
  • IsDate (100) Retour Faux.
EstErreur Retour Vrai si la valeur donnée est une erreur, ou Faux- si ce n'est pas une erreur.
Est manquant Le nom de l'argument de procédure facultatif est passé en tant qu'argument à la fonction. Est manquant Retour Vrai si aucune valeur n'est passée pour l'argument de procédure en question.
EstNumérique Retour Vrai si la valeur donnée peut être traitée comme un nombre, sinon renvoie Faux.
La gauche Renvoie le nombre de caractères spécifié à partir du début de la chaîne passée. La syntaxe de la fonction est la suivante :

La gauche ( ligne , longueur )

ligne La chaîne d'origine est-elle et longueur- le nombre de caractères renvoyés, à compter du début de la ligne.

  • Gauche ("abvgdezhziklmn", 4) renvoie la chaîne "abcg" ;
  • Gauche ("abvgdezhziklmn", 1) renvoie la chaîne "a".
Len Renvoie le nombre de caractères d'une chaîne.

Exemple: Len ("abvgdezh") renvoie le chiffre 7.

Mois Renvoie un entier correspondant au mois à la date donnée.

Exemple: Mois ("29/01/2015") renvoie la valeur 1.

Milieu Renvoie le nombre de caractères spécifié à partir du milieu de la chaîne transmise. Syntaxe de la fonction :

Milieu ( ligne , Démarrer , longueur )

ligne est la chaîne d'origine, Démarrer- la position du début de la chaîne extraite, longueur- le nombre de caractères à extraire.

  • Milieu ("abvgdezhziklmn", 4, 5) renvoie la chaîne "ddjz" ;
  • Milieu ("abvgdezhziklmn", 10, 2) renvoie la chaîne "cl".
Minute Renvoie un nombre entier représentant le nombre de minutes dans un temps donné. Exemple : Minute ("22:45:15") renvoie 45.
À présent Renvoie la date et l'heure actuelles du système.
Droite Renvoie le nombre de caractères spécifié à partir de la fin de la chaîne passée. Syntaxe de la fonction :

Droite ( ligne , longueur )

ligne La chaîne d'origine est-elle et longueur C'est le nombre de caractères à extraire de la fin de la chaîne donnée.

  • Droit ("abvgdezhziklmn", 4) renvoie la chaîne "klmn" ;
  • Droit ("abvgdezhziklmn", 1) renvoie la chaîne "n".
Deuxième Renvoie un entier représentant le nombre de secondes dans un temps donné.

Exemple: Deuxième ("22:45:15") renvoie 15.

Carré Renvoie la racine carrée de la valeur numérique passée dans l'argument.
  • Carré (4) renvoie la valeur 2 ;
  • Carré (16) renvoie la valeur 4.
Temps Renvoie l'heure système actuelle.
Ubound Renvoie l'exposant de la dimension du tableau spécifié.

Noter: Pour les tableaux multidimensionnels, vous pouvez spécifier l'index de la dimension à renvoyer en tant qu'argument facultatif. S'il n'est pas spécifié, la valeur par défaut est 1.

Déclarations de langage (ou opérateurs) Sont des unités logicielles qui effectuent une sorte d'action ou décrivent des données.

L'opérateur comprend un ou plusieurs mots-clés et éventuellement des paramètres. Plusieurs opérateurs situés sur la même ligne de programme sont séparés les uns des autres par deux points. Si l'instruction est trop longue, vous pouvez la diviser en plusieurs lignes en utilisant le trait de soulignement _ pour l'envelopper.

À PROPOS DE P erateur appropriation

L'opérateur d'affectation permet d'affecter une nouvelle valeur à une variable lors de l'exécution du programme. Le signe d'affectation "=".

par example, opérateur :

x = Carré (5 + Tan (1,8) ^ 2)

affecte la valeur de l'expression à la variable x. En calculant l'expression écrite du côté droit, nous obtenons un nombre réel. Mais la valeur qui sera attribuée à la variable x dépend de la façon dont le type de cette variable a été décrit. Ainsi, si la variable x est de type Single, on lui attribuera le résultat 4.834464, si Double, alors 4.83446368725481, et si Integer, alors 5.

Le type de données de la variable x doit être compatible avec le type de données de cette expression. En plus de la conversion implicite d'un type à un autre pendant l'affectation, Visual Basic offre la possibilité de convertir des types à l'aide de fonctions. Par exemple, la fonction CDbl convertit les données en type Double, CInt- taper Entier, Clng- taper Long, CSng- taper Unique, CStr- au type String, etc.

Les fonctions CInt et Clng complètent le résultat. De plus, si la partie fractionnaire du nombre est de 0,5, l'arrondi est effectué au nombre pair le plus proche.

Opérateur d'assignation vous permet non seulement d'attribuer une valeur à une variable, mais également de définir les valeurs de propriété des objets VBA. Par exemple, l'opérateur

Lignes ("1 : 1"). Police. Gras = vrai

met en gras la première ligne de la feuille de calcul.

SAUT DE LIGNE

Combinaison<Пробел> + <Знак подчеркивания>à la fin d'une ligne garantit que la ligne suivante est une continuation de la précédente. Il faut se rappeler que :

§ Vous ne pouvez pas casser les constantes de chaîne par césure

§ Pas plus de sept extensions d'une même ligne sont autorisées

§ La chaîne elle-même ne peut pas contenir plus de 1024 caractères

Exemple.

Transfert incorrect Transfert correct

String = "Visual Basic pour _ String =" Visual Basic "_

Applications "&" pour Applications "

COMMENTAIRES

Le texte suivant le symbole (") jusqu'à la fin de la ligne dans le programme est ignoré par le compilateur et est un commentaire. Les commentaires sont utilisés pour ajouter des explications et des descriptions au programme. Les commentaires sont utiles lors du débogage d'un programme : ils permettent vous de désactiver temporairement les lignes de programme pendant le débogage.

Conditionnel opérateur

Une instruction conditionnelle exécute certaines instructions (opérateurs) en fonction de la valeur de l'expression de condition. Le schéma fonctionnel pour vérifier la condition est le suivant :

Figure. 1. Le branchement peut être incomplet (cette structure est également appelée parcours).

Figure. 2. L'opérateur conditionnel a deux formes de syntaxe : en ligne et en bloc.

Forme minuscule

Si état Puis [ opérateurs_if_true]

L'algorithme illustré à la Fig. 1, en minuscule sera écrit comme

Si état Puis opérateurs_if_true Autre opérateurs_if_false

La figure 2 correspond à l'entrée

Si état Puis opérateurs_if_true

La figure 3 correspond à l'entrée

Si état Alors sinon opérateurs_if_false

Formulaire de bloc

Si condition-1 Puis

[Opérateurs_if condition – 1_true]

[operateurs_if_all_conditions_false]]

Les conditions répertoriées dans les parties If et ElseIf sont des expressions relationnelles ou logiques. Lorsqu'une des conditions est remplie, les instructions suivant le mot-clé Then correspondant sont exécutées et les instructions restantes sont ignorées (c'est-à-dire qu'aucune autre vérification n'est effectuée et le contrôle est transféré à l'instruction suivant End If). Si aucune des conditions logiques n'est égale à vrai, alors operator_if_ all_previous_conditions_false, ou, si cette partie est omise, le contrôle est transféré à la ligne de programme suivant l'instruction conditionnelle.

La forme de bloc d'une instruction If est préférable si :

Lorsque la condition est remplie ou non, plusieurs instructions sont exécutées (la forme minuscule dans ce cas peut également être utilisée, mais la ligne sera trop longue et le programme est moins compréhensible) ;

Plusieurs conditions sont vérifiées séquentiellement, et lorsque la condition suivante est remplie, il n'est pas pratique de vérifier les conditions suivantes (c'est à cela que sert le mot-clé ElseIf).

Exemple

L'entreprise offre des rabais aux acheteurs en gros.

Sur la base du volume connu de la commande, il est nécessaire de déterminer sa valeur.

Pour calculer le coût d'une commande, on utilise la fonction :

Fonction publique Order_Price (quantité aussi longue) que double

Si Quantité<= 999 Then

Order_Price = Quantité * 5

Quantité sinon<= 1999 Then

Order_Price = Quantité * 4,8

Order_Price = Quantité * 4,75

Dans ce cas, la forme minuscule de l'instruction IF peut également être utilisée :

Fonction publique Order_Price1 (quantité aussi longue) que double

Si Quantité<= 999 Then Стоимость_заказа1 = Количество * 5

Si Quantité > = 1000 Et Quantité<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

If Quantity> = 2000 Then Order_value1 = Quantity * 4.75

Hormis les inconvénients que les chaînes sont trop longues, et pour tout volume de commande, tous les contrôles sont effectués de manière séquentielle (la première procédure fonctionne plus rapidement avec de petits volumes de commande), puis le programme est écrit correctement et, peut-être, encore plus visuel.

Cependant, des exemples peuvent être donnés lorsque, lorsqu'une des conditions est remplie (ou non), il est tout simplement impossible de vérifier les autres.

par example, certains opérateurs doivent être exécutés lorsque les conditions sont réunies : http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif "alt =" "width =" 56 "height =" 27 src = "> Si pour les contrôles, utilisez l'opérateur

Si x> 0 et y

alors si x est négatif, une erreur se produira lors de l'appel de la fonction sqr (un nombre négatif sous la racine).

Cette erreur peut être évitée en utilisant la construction

Si x> 0 Alors Si y< Sqr(x) Then

Dans la dernière forme de notation, s'il y a un mot-clé Else, alors il fait référence à la dernière instruction If.

Opérateur de sélection

Sélectionnez le cas expression

[instructions_autre]]

Le paramètre d'expression est n'importe quelle expression numérique ou de chaîne. Au lieu d'évaluer une condition logique, la valeur de l'expression est comparée à chacune des valeurs spécifiées par le paramètre liste_expression-m.

Valeurs de comparaison incluses dans liste d'expressions-n, peut être spécifié comme :

- valeurs;

- une plage de valeurs sous la forme valeur_départÀ valeur_fin;

- expressions de comparaison sous la forme Is valeur de comparaison_opérateur;

- une liste de l'un des types d'expressions répertoriés (séparateur - virgule).

Une instruction peut contenir un nombre quelconque de blocs Case. Si aucune des conditions n'est vraie, les instructions du bloc Case Else sont exécutées.

Par exemple, si la condition est un score supérieur à trois, alors cette condition peut s'écrire : Cas 4, 5 ou Cas Est> 3 ou Cas Est> = 4 ou Cas 4 à 5.

Noter. Le mot-clé Is peut être omis, il sera ajouté tout seul.

Exemple

L'exemple ci-dessus avec un prix réduit à l'aide de la construction Select Case peut être résolu comme ceci :

Fonction publique Order_Price2 (quantité aussi longue) que double

Sélectionnez la quantité de caisse

Order_Price2 = Quantité * 5

Cas 1000 à 1999

Order_Price2 = Quantité * 4,8

Cas Est> = 2000

Order_Price2 = Quantité * 4,75

Tous les opérateurs arithmétiques, de comparaison, booléens et de concaténation sont décrits en détail ici. J'ai essayé de rassembler tout ce qu'il y a à savoir sur ces opérateurs. Chaque opérateur est fourni avec un exemple. Les descriptions ont été traduites par moi à partir de l'aide standard "un VB5.

Opérateurs arithmétiques

opérateur ^ (exponentiation)

Cet opérateur sert à élever un nombre à une puissance.

Syntaxe:

résultat = numéro^Puissance

Paramètres:

résultat
numéro
Puissance- est obligatoire ; n'importe quelle expression numérique

Remarques:

numéro ne peut être négatif que si Puissance est un entier. Si plusieurs opérateurs ^ sont utilisés dans une expression, l'évaluation s'effectue de gauche à droite. En règle générale, le type de résultat est Double. Cependant, si ou Puissance, ou alors numéro- Expression nulle, alors résultatégalement nul.

Exemple:

Faible MaValeur
MyValue = 2 ^ 2 " Renverra 4.
MaValeur = 2 ^ 3 ^ 3 " remboursera 512 (2^3=8, 8^3=512)
MaValeur = (-5) ^ 3 " remboursera -125.

Conseils:

Si vous devez élever un nombre à une puissance constante, alors il vaut mieux utiliser plusieurs opérateurs - multiplications, qu'un - exponentiation, jugez par vous-même, une boucle d'un million de passes avec le calcul de l'expression est passée par :

test1 = 2 ^ 8 "893ms
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 "130ms !

opérateur * (multiplication)

Utilisé pour multiplier deux nombres.

Syntaxe:

résultat = numéro 1* numéro 2

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique

Remarques:

Le type de données du résultat est généralement le même que le type le plus précis de deux nombres. L'ordre de précision du plus élevé au plus bas est Octet, Entier, Long, Unique, Devise, Double, Décimal. C'est vrai, il y a des exceptions :

  • Si Single et Long sont multipliés, le résultat est Double
  • Si le type de données est le résultat- Long Single ou Date, qui ne correspond pas au résultat de l'expression elle-même, alors le résultat est converti en un Variant contenant Double.

Si un numéro 1 ou alors numéro 2

L'ordre de précision dans la multiplication est différent de celui utilisé dans l'addition et la soustraction.

Exemple:

Faible MaValeur
MyValue = 2 * 2 " Renverra 4.
MaValeur = 459,35 * MaValeur "(! LANG : Renvoie 495,35 * 4

opérateur / (division)

Utilisé pour diviser deux nombres et obtenir un résultat à virgule flottante.

Syntaxe:

résultat = numéro 1 / numéro 2

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique

Remarques:

Résultat est généralement de type Double. C'est vrai, il y a des exceptions :

  • Si les deux expressions de l'expression sont de type Byte, Integer, Single, le résultat est Single. Cependant, si les dimensions de l'expression ne rentrent pas dans le cadre Unique, une erreur se produit.
  • Si les deux expressions de l'expression sont de type Variant contenant Byte, Integer ou Single, le résultat est un Single Variant. Cependant, si les dimensions de l'expression ne rentrent pas dans le Single, alors Double Variant.
  • Si l'un des nombres est de type Decimal, le résultat est également Decimal.

Si un numéro 1 ou alors numéro 2- Null, alors il est simplement interprété comme un 0 normal.

Exemples:

Faible MaValeur
MaValeur = 10/4" !} remboursera 2.5.
MaValeur = 10/3 " remboursera 3.333333.

opérateur \ (division entière)

Utilisé pour diviser deux nombres et obtenir un résultat entier.

Syntaxe:

résultat = numéro 1 \ numéro 2

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique

Remarques:

Avant qu'une telle division ne se produise, les expressions sont arrondies aux expressions Octet, Entier ou Long. En règle générale, le type de données de résultat est Octet, Variante d'octet, Entier, Variante d'entier, Long ou Long. Toute partie fractionnaire est tronquée.

Cependant, si l'une des expressions est Null, le résultat est Null. Toute expression contenant Empty est interprétée comme 0.

Exemples:

Faible MaValeur
MaValeur = 11 \ 4 " remboursera 2.
MaValeur = 9 \ 3 " remboursera 3.
MaValeur = 100 \ 3 " remboursera 33.

Opérateur de mod (reste de la division)

Utilisé pour diviser deux nombres et obtenir le reste de leur division.

Syntaxe:

résultat = numéro 1 Mod numéro 2

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique

Remarques:

Lors de la division, les nombres avec un point à droite sont arrondis. Par exemple, le résultat de l'expression suivante est 5 :

A = 19 Mod 6.7

Que se passe t-il ici? Tout d'abord, le nombre 6,7 est arrondi à 7. Ensuite, la division a lieu, nous obtenons 2,7 .... Le reste de la division = 5. (2 * 7 = 14, 19 - 14 = 5).

Le résultat est généralement de type Byte, Byte variant, Integer, Integer variant, Long ou Variant contenant Long.

Si l'une des expressions est Null, le résultat est Null. Toute expression contenant Empty est interprétée comme 0.

Exemples:

Faible MonRésultat
MonRésultat = 10 Mod 5 " remboursera 0.
MonRésultat = 10 Mod 3 " remboursera 1.
MonRésultat = 12 Mod 4.3 " remboursera 0.
MonRésultat = 12.6 Mod 5 " remboursera 3.

opérateur + (addition)

Utilisé pour additionner deux nombres.

Syntaxe:

résultat = expression1+expression2

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
expression1
expression2- obligatoire; toute expression

Remarques:

Lorsque vous utilisez l'opérateur +, vous ne pouvez pas déterminer ce qui se passera, l'addition ou la concaténation de chaînes. Utilisez l'opérateur & pour la concaténation pour éviter toute confusion et rendre votre code plus lisible.

Si l'une des expressions n'est pas Variante, les règles suivantes s'appliquent :

  • Si les deux expressions sont de type numérique (Byte, Boolean, Integer, Long, Single, Double, Date, Currency ou Decimal), alors elles sont ajoutées.
  • Si les deux expressions sont des chaînes - concaténation.
  • Si l'une des expressions est de type numérique et l'autre est n'importe quelle valeur Variant, y compris Null, alors l'addition se produit.
  • Si l'une des expressions est une chaîne et l'autre n'importe quelle valeur Variant, la concaténation se produit.
  • Si l'une des expressions contient Empty, la seconde expression inchangée est renvoyée.
  • Si l'une des expressions est de type numérique et l'autre est une chaîne, une erreur de non-concordance de type se produit.
  • Si une expression est Null, le résultat est également Null.

Si les deux expressions sont Variant, les règles suivantes s'appliquent :

  • Si les deux expressions sont des nombres, elles sont alors additionnées.
  • Si les deux expressions sont des chaînes, elles sont concaténées.
  • Si l'une des expressions est un nombre et l'autre une chaîne, l'addition se produit.

Pour une addition normale, le type de données du résultat est généralement le même que le type le plus précis de deux nombres. L'ordre de précision est le suivant : octet, entier, long, simple, double, monétaire et décimal. Il y a des exceptions :

  • Si Single et Long sont ajoutés, le résultat est Double
  • Si une expression avec le type Date est ajoutée, avec n'importe quelle autre expression, alors le résultat est Date.

Si une ou les deux expressions sont Null, le résultat est également Null. Si les deux expressions contiennent Empty, le résultat est Integer. S'il n'y en a qu'un, alors la deuxième expression inchangée est renvoyée comme résultat.

Exemples:

Faible MonNuméro, Var1, Var2
MonNuméro = 2 + 2 " remboursera 4.
MonNuméro = 4257,04 + 98112 " remboursera 102369.04.

Var1 = "34"
Var2 = 6 "Initialisation des variables mixtes
MonNuméro = Var1 + Var2 " remboursera 40.

Var1 = "34"
Var2 = "6" "Initialisation des variables avec des chaînes
MonNuméro = Var1 + Var2 " remboursera"346" (s'est produit
"concaténation, pas addition!).

Conseils:

L'opérateur d'addition (+) peut être utilisé pour ajouter des dates, c'est-à-dire variables de type Date :

Dim d En tant que date
d = DateSérie (2002, 8, 15) "date d'initialisation 15/08/2002
d = d + 15 "maintenant d contient la date 30.08.2002
"c'est-à-dire que nous avons ajouté 15 jours

opérateur - (soustraction, changement de signe)

Utilisé pour trouver la différence entre deux nombres, ou aussi pour changer le signe d'une expression.

Syntaxe:

résultat = expression1- expression2

-expression

Paramètres:

résultat- obligatoire; n'importe quelle variable numérique
expression- obligatoire; toute expression
expression1- obligatoire; toute expression
expression2- obligatoire; toute expression

Remarques:

Dans la première syntaxe, l'opérateur "-" est nécessaire pour trouver la différence entre deux nombres. Dans la deuxième syntaxe, "-" est utilisé pour changer le signe de expressions.

Le type de données du résultat est généralement le même que le type le plus précis de deux nombres. L'ordre de précision est le suivant : octet, entier, long, simple, double, monétaire et décimal. Il y a des exceptions :

  • Si les types Single et Long sont impliqués dans la soustraction, alors le résultat est Double
  • Si une expression Date est utilisée dans la soustraction,
    alors le résultat est Date.
  • La soustraction de deux dates donne Double.

Si une ou les deux expressions sont Null, le résultat est également Null. Si l'une des expressions est vide, alors elle est interprétée comme 0.

L'ordre de précision de l'addition et de la soustraction est différent de ceux utilisés dans la multiplication.

Exemples:

Faible MonRésultat
MonRésultat = 4 - 2 " remboursera 2.
MonRésultat = 459,35 - 334,90 " remboursera 124.45.

Conseils:

Comme l'opérateur d'addition, l'opérateur de soustraction peut être utilisé pour calculer la différence (en jours) entre deux dates :

Dim d1 En tant que date
Dim d2 comme date
Dim razn aussi longtemps
d1 = DateSérie (1983, 10, 14)
d2 = DateSérie (2002, 8, 15)
razn = d2 - d1 "différence en jours (6880).

Opérateurs de comparaison

Utilisé pour comparer certaines expressions. Ils ont 3 syntaxes :

Syntaxe:

résultat = expression1 opérateur de comparaison expression2
résultat = objet1 Est objet2
résultat = ligne Comme goûter

Paramètres:

résultat obligatoire; n'importe quelle variable numérique
expression obligatoire; toute expression
opérateur de comparaison obligatoire; tout opérateur de comparaison
un objet obligatoire; le nom de n'importe quel objet
ligne obligatoire; n'importe quelle expression de chaîne.
goûter obligatoire; n'importe quelle expression de chaîne, ou une plage de lettres et de chiffres

Remarques:

Le tableau suivant contient une liste d'opérateurs de comparaison et de conditions qui déterminent le résultat d'une expression (True ou False).

Opérateur

Vrai si

Faux si

Nul si

< (меньше чем) expression1 <
expression2
expression1 >=
expression2

une chose
de
les expressions contiennent Null

<= (меньше или равно) expression1 <=
expression2
expression1 >
expression2
> (supérieur à) expression1 >
expression2
expression1 <=
expression2
> = (supérieur ou égal) expression1 >=
expression2
expression1 <
expression2
= (égal) expression1 =
expression2
expression1 <>
expression2
<>(inégal) expression1 <>
expression2
expression1 =
expression2

Les opérateurs Is et Like remplissent des fonctions spécifiques et leur tableau de comparaison est différent de celui présenté ci-dessous (nous en discuterons ci-dessous).

Lors de la comparaison de deux expressions, il n'est pas toujours possible de déterminer s'il faut comparer des nombres ou des chaînes. Ce qui suit montre comment le résultat sera calculé si les deux expressions sont d'un type autre que Variant :

  • Si les deux expressions sont des nombres (octet, booléen, entier, long, simple, double, date, devise ou décimal), les nombres sont comparés.
  • Si les deux expressions sont des chaînes, les chaînes sont comparées. (la ligne la plus petite est celle dont la première lettre et les suivantes ont un code ascii plus petit).
  • Si l'une des expressions est un nombre et l'autre est un Variant, qui peut être interprété comme un nombre, alors les nombres sont comparés.
  • Si l'une des expressions est un nombre et l'autre est une chaîne Variant qui ne peut pas être interprétée comme un nombre, une erreur se produit (incompatibilité de type).
  • Si l'une des expressions est une chaîne et l'autre n'importe quelle valeur Variant (même Null), une comparaison de chaîne se produit.
  • Si l'une des expressions est vide et l'autre est un nombre, une comparaison de nombres est effectuée, où vide est traité comme 0.
  • Si l'une des expressions est vide et l'autre est une chaîne, une comparaison de chaînes est effectuée, où vide est traité comme une chaîne vide "".

Si la première expression et la seconde sont de type Variant, les expressions sont comparées en fonction des types de données que contient le Variant :

  • Si les deux expressions Variant contiennent des nombres, les nombres sont comparés.
  • Si les deux expressions Variant contiennent des chaînes, les chaînes sont comparées.
  • Si l'une des expressions Variant contient un nombre et l'autre une chaîne, alors l'expression numérique est inférieure à l'expression de chaîne.
  • Si l'une des expressions Variant est vide et l'autre est un nombre, alors vide est traité comme 0.
  • Si l'une des expressions Variant est Empty et l'autre est une chaîne, alors Empty est traité comme la chaîne vide "".
  • Si les deux expressions sont vides, elles sont alors considérées comme égales.

Lorsqu'une variable Single est comparée à un Double, le Double est arrondi à la précision d'un Single.

Si Currency est comparé à Single ou Double, alors Single ou Double est converti en Currency. De même, lors de la comparaison de Decimal avec Single ou Double, Single ou Double sont convertis en Decimal. Pour la devise, toute partie fractionnaire inférieure à 0,0001 peut être perdue. Pour Decimal, la valeur est 1E-28, ou une erreur peut se produire. Ainsi, avec la perte de la partie fractionnaire, les expressions peuvent être interprétées comme égales, bien qu'en fait, l'une différera de l'autre. (bien qu'une petite valeur).

Exemples:

Faible MonRésultat, Var1, Var2
MonRésultat = (45< 35) " remboursera Faux.
MonRésultat = (45 = 45) " remboursera Vrai.
MonRésultat = (4<> 3) " remboursera Vrai.
MonRésultat = ("5"> "4") " remboursera Vrai.

Var1 = "5": Var2 = 4 "en VB, vous pouvez utiliser un deux-points,
"pour séparer les opérateurs.

MonRésultat = (Var1> Var2) " remboursera Vrai.

Var1 = 5 : Var2 = Vider
MonRésultat = (Var1> Var2) " remboursera Vrai.

Var1 = 0 : Var2 = Vider
MonRésultat = (Var1 = Var2) " remboursera Vrai.

opérateur de comparaison Is

Cet opérateur est utilisé pour comparer des variables d'objet.

La syntaxe de cet opérateur est indiquée ci-dessus.

Remarques:

Si object1 et object1 font référence au même objet, alors le résultat est True, sinon, False. Deux variables peuvent faire référence au même objet de plusieurs manières. Dans l'exemple suivant, A fait référence au même objet que B :

Définir A = B

L'exemple suivant fait en sorte que les variables A et B se réfèrent au même objet - C :

Définir A = C
Ensemble B = C

Exemples:

Faible MonObjet, VotreObjet, CetObjet, _
AutreObjet, CetObjet, MonChèque

Définissez VotreObjet = MonObjet "créer des liens vers des objets
Définir CetObjet = MonObjet
Définissez CetObjet = AutreObjet
MyCheck = YourObject Is ThisObject " Renverra True.
MyCheck = ThatObject Is ThisObject " Renverra False.
"Nous supposons que MyObject<>AutreObjet
MyCheck = MyObject Is ThatObject " Renverra False.

opérateur de comparaison de chaînes - Like

L'opérateur de comparaison de chaînes Like est utilisé pour comparer des chaînes.

La syntaxe de cet opérateur a déjà été discutée ci-dessus.

Commenter:

Cet opérateur peut être utilisé pour tester une chaîne par rapport à un modèle. C'est un opérateur très puissant, presque analogue aux expressions régulières en Perl.

Ainsi, cet opérateur fonctionne comme suit. Si la chaîne correspond au masque, le résultat est True. Sinon, Faux. Si l'une des expressions est Null, le résultat est également Null.

Le comportement de l'opérateur Like dépend du type de comparaison de chaîne par défaut. (Instruction de comparaison d'options).

Si le type Binary est défini (c'est-à-dire une comparaison binaire), alors les chaînes sont comparées en fonction de leurs codes Ascii (dans différents encodages, c'est différent). Cette séquence est généralement utilisée :

UNE< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Si le type est défini sur Texte (comparaison de texte). Avec une telle comparaison, la séquence diffère de la précédente, ici les lettres majuscules et minuscules sont égales :

(A = un)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

La fonction la plus importante de l'opérateur Like est de vérifier si une chaîne appartient à un masque. Les spécialités suivantes peuvent être utilisées dans le masque. symboles :

N'importe quel personnage
* Zéro ou plusieurs caractères
# N'importe quel chiffre (0-9).
Tout personnage unique qui apparaît dans la liste de chars
[! charlist] Tout personnage unique non inclus dans la charlist

Voici une note rapide. Afin de vérifier l'appartenance d'une ligne sur un masque contenant un spécial. symboles (c'est-à-dire vérifier, par exemple, s'il y a des symboles [,?, #,], * dans la chaîne), alors vous devez les mettre entre crochets. Vous ne pouvez pas simplement mettre une parenthèse séparée [ou].

Lorsque vous spécifiez une liste de caractères, vous pouvez utiliser un tiret (-). Par exemple, pour spécifier une séquence de A à Z, vous utiliseriez un masque. Tout ce qui est entre parenthèses ne doit contenir aucun séparateur (espaces, virgules, etc.), sinon ils seront également inclus dans la séquence.

Il existe d'autres règles importantes pour la vérification des masques :

  • (!) le signe au début de la liste des symboles indique que vous devez rechercher des symboles qui ne sont pas inclus dans cette liste. Si vous avez besoin de trouver le signe! lui-même, alors vous devez mettre des crochets [!].
  • (-) est utilisé pour spécifier une plage de caractères.
  • Lorsqu'une plage de caractères est spécifiée, elle doit être ASCII ascendante. Ceux. le bon masque, mais pas.
  • La séquence est interprétée comme une chaîne vide "".

Exemples:

Faible MonChèque
MyCheck = "aBBBa" Like "a * a" "Retournera True.
MyCheck = "F" Like "" " Renverra True.
MyCheck = "F" Like "[! A-Z]" " Renverra False.
MyCheck = "a2a" Like "a # a" " Renverra True.
MyCheck = "aM5b" Like "a # [! C-e]" " Renverra True.
MyCheck = "BAT123khg" Like "B? T *" " Renverra True.
MyCheck = "CAT123khg" Like "B? T *" " Renverra False.

maChaîne = "312T-87GD-8922"

Si maChaîne Comme "### - ## - ####" Alors...

Opérateurs de concaténation de chaînes

En fait, vous ne pouvez utiliser que 2 opérateurs pour concaténer des chaînes en Visual Basic. Ce sont & et +. L'opérateur + est décrit ci-dessus. Parlons de l'opérateur &.

opérateur de concaténation de chaînes - &

Utilisé pour concaténer deux expressions.

Syntaxe:

résultat = expression1 & expression2

résultat obligatoire; Toute variable chaîne ou variante
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Si l'expression n'est pas une chaîne, elle est convertie en Variant de chaîne. Le type de données du résultat est String uniquement si les deux expressions sont de type String. Sinon, le résultat est un String Variant. Si les deux expressions sont Null, le résultat est également Null. Cependant, si une seule des expressions contient une valeur Null, elle est interprétée comme une chaîne vide "". Vide est également interprété comme la chaîne vide "".

Exemples:

Faible MaStr
MyStr = "Bonjour" & "Monde"
" remboursera la chaîne "Hello World".
MyStr = "VÉRIFIER" & 123 & "VÉRIFIER"
"Retournera la chaîne" CHECK 123 CHECK ".

Opérateurs logiques

C'est le groupe le plus intéressant par l'opérateur. Lors de la programmation, vous devez savoir comment ils fonctionnent et comment ils sont utilisés (et pas seulement en Visual Basic).

Il y en a 6 en Visual Basic. Considérons chaque opérateur en détail.

Et opérateur

Utilisé pour effectuer une multiplication logique sur deux expressions.

Syntaxe:

résultat = expression1 Et expression2

résultat
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Le tableau suivant montre le fonctionnement de l'opérateur And :

Si expression1 =

, et expression2 =

Alors le résultat =

Vrai Vrai Vrai
Vrai Faux Faux
Vrai Nul Nul
Faux Vrai Faux
Faux Faux Faux
Faux Nul Faux
Nul Vrai Nul
Nul Faux Faux
Nul Nul Nul

L'opérateur And est également utilisé pour tester les bits d'un nombre. Pour les bits, l'opérateur Et fonctionne comme suit (regardez de gauche à droite)

0 0 0
0 1 0
1 0 0
1 1 1

Exemples:

Faible A, B, C, D, MyCheck
MonChèque = A> B Et B> C " remboursera Vrai.
MonChèque = B> A Et B> C " remboursera Faux.
MonChèque = A> B Et B> D " remboursera Nul.
MonChèque = A Et B " remboursera8 (comparaison au niveau du bit).

Regardons de plus près le dernier exemple. Le nombre 10 est représenté sous forme de bits comme suit (sous forme de tétrade, c'est-à-dire 4 bits) :

Et le chiffre 8 est comme ça :

À la suite de l'opérateur And, d'après le tableau ci-dessus, nous obtenons :

Ceux. 8. Pourquoi l'avons-nous fait ? Nous avons fait cela afin de vérifier si le quatrième bit du nombre A est défini ? Lorsque nous avons obtenu B, nous nous sommes assurés que ce bit est défini.

Ou opérateur

Utilisé pour effectuer l'addition logique de deux expressions.

Syntaxe:

résultat = expression1 Ou alors expression2

résultat obligatoire; Toute variable numérique (y compris booléenne)
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Le tableau suivant montre le fonctionnement de l'opérateur Ou :

Si expression1 =

, et expression2 =

Alors le résultat =

Vrai Vrai Vrai
Vrai Faux Vrai
Vrai Nul Vrai
Faux Vrai Vrai
Faux Faux Faux
Faux Nul Nul
Nul Vrai Vrai
Nul Faux Nul
Nul Nul Nul

L'opérateur Ou est utilisé pour définir des bits spécifiques d'un nombre. Pour les bits, l'opérateur Ou fonctionne comme suit (regardez de gauche à droite)

0 0 0
0 1 1
1 0 1
1 1 1

Le résultat est en gras.

Exemples:

Faible A, B, C, D, MyCheck
MonChèque = A> B ou B> C " remboursera Vrai.
MonChèque = B> A ou B> C " remboursera Vrai.
MonChèque = A> B ou B> D " remboursera Vrai.
MonChèque = B> D Ou B> A " remboursera Nul.
MonChèque = A Ou 5 " remboursera 15:

Regardons de plus près le dernier exemple. Le nombre 10 est représenté sous forme de bits comme suit (sous forme de tétrade, c'est-à-dire 4 bits) :

Et le numéro 5 :

A la suite de l'opération de l'opérateur Ou, d'après le tableau ci-dessus, on obtient :

Ceux. 15. Comme vous pouvez le voir, l'opérateur Ou est très simple et pratique à utiliser non seulement dans les expressions de comparaison, mais aussi pour définir certains bits d'un nombre.

Opérateur Xor

Utilisé pour effectuer la négation logique de deux expressions.

Syntaxe:

résultat = expression1 Xou expression2

résultat obligatoire; Toute variable numérique (y compris booléenne)
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Le tableau suivant montre comment fonctionne l'opérateur Xor :

L'opérateur Xor est utilisé pour inverser certains bits d'un nombre. Pour les bits, l'opérateur Xor fonctionne comme suit (regardez de gauche à droite)

0 0 0
0 1 1
1 0 1
1 1 0

Le résultat est en gras. Xor diffère de Or, seulement en ce que lorsque les deux bits sont à un, Xor produit 0. L'opérateur Xor est intéressant pour sa propriété, mais lorsqu'il est utilisé deux fois, il produit le même nombre. Ceci est souvent utilisé en cryptographie.

Exemples:

Faible A, B, C, D, MyCheck
A = 10 : B = 8 : C = 6 : D = Nul
MonChèque = A> B Xou B> C " remboursera Faux.
MonChèque = B> A Xou B> C " remboursera Vrai.
MonChèque = B> A Xou C> B " remboursera Faux.
MonChèque = B> D Xou A> B " remboursera Nul.
MonChèque = A Xou B " remboursera 2

Un exemple intéressant d'utilisation de l'opérateur Xor consiste à échanger les valeurs de deux variables numériques :

Atténuer un Aussi long, b Aussi long
a = 4
b = 7
a = a Xou b
b = a Xou b
a = a Xou b

Maintenant, la variable a contient la valeur de la variable b, et vice versa.

opérateur Non

Utilisé pour effectuer une inversion logique de deux expressions.

Syntaxe:

résultat= Non expression

résultat obligatoire; Toute variable numérique (y compris booléenne)
expression obligatoire; Toute expression

Remarques:

Le tableau suivant montre comment fonctionne l'opérateur Not :

L'opérateur Not inverse tous les bits expressions. Pour les bits, l'opérateur Not fonctionne comme suit (regardez de gauche à droite) :

0 1
1 0

Le résultat est en gras.

Exemples:

Faible A, B, C, D, MyCheck
A = 10 : B = 8 : C = 6 : D = Nul
MyCheck = Non (A> B) " remboursera Faux.
MonChèque = Non (B> A) " remboursera Vrai.
MyCheck = Non (C> D) " remboursera Nul.
MyCheck = Pas A " remboursera-11 (tous les bits sont inversés)

Regardons de plus près le dernier exemple. Le nombre 10 est représenté sous forme de bits comme suit (sous forme d'octet, soit 8 bits) :

Après avoir inversé tous les bits, on obtient :

Et c'est -11.

opérateur Eqv

Utilisé pour effectuer l'équivalence logique de deux expressions.

Syntaxe:

résultat = expression1Éqv expression2

résultat obligatoire; Toute variable numérique (y compris booléenne)
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Le tableau suivant montre comment fonctionne l'opérateur Eqv :

Pour les bits, l'opérateur Eqv fonctionne comme suit (regardez de gauche à droite)

0 0 1
0 1 0
1 0 0
1 1 1

Exemples:

Faible A, B, C, D, MyCheck
A = 10 : B = 8 : C = 6 : D = Nul
MyCheck = A> B Eqv B> C " remboursera Vrai.
MyCheck = B> A Eqv B> C " remboursera Faux.
MyCheck = A> B Eqv B> D " remboursera Nul.
MyCheck = A Eqv B " remboursera -3

Opérateur de diablotin

Utilisé pour faire l'implication logique de deux expressions.

Syntaxe:

résultat = expression1 Lutin expression2

résultat obligatoire; Toute variable numérique (y compris booléenne)
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression

Remarques:

Le tableau suivant montre le fonctionnement de l'opérateur Imp :

Si expression1 =

, et expression2 =

Alors le résultat =

Vrai Vrai Vrai
Vrai Faux Faux
Vrai Nul Nul
Faux Vrai Vrai
Faux Faux Vrai
Faux Nul Vrai
Nul Vrai Vrai
Nul Faux Nul
Nul Nul Nul

Pour les bits, l'opérateur Imp fonctionne comme suit (regardez de gauche à droite)

0 0 1
0 1 1
1 0 0
1 1 1

Exemples:

Faible A, B, C, D, MyCheck
A = 10 : B = 8 : C = 6 : D = Nul
MyCheck = A> B Imp B> C " remboursera Vrai.
MyCheck = A> B Imp C> B " remboursera Faux.
MyCheck = B> A Imp C> B " remboursera Vrai.
MyCheck = B> A Imp C> D " remboursera Vrai.
MyCheck = C> D Imp B> A " remboursera Nul.
MyCheck = B Imp A " Renvoie -1

signeNomLa description
= ÉgalementRenvoie True si les opérandes gauche et droit sont égaux. Notez qu'il s'agit d'une surcharge de l'opérateur d'affectation.
<> InégalRenvoie True si les opérandes gauche et droit ne sont pas égaux.
> Mieux queRenvoie True si l'opérande gauche est supérieur à l'opérande droit.
< Moins queRenvoie True si l'opérande gauche est inférieur à l'opérande droit.
>= Plus ou égalRenvoie True si l'opérande gauche est supérieur ou égal à l'opérande droit.
<= Inférieur ou égalRenvoie True si l'opérande gauche est inférieur ou égal à l'opérande droit.
Est Capital de référenceRenvoie True si la référence à l'objet de gauche est la même instance que la référence à l'objet de droite. Il peut également être utilisé avec Nothing (référence d'objet null) des deux côtés. Noter. L'opérateur Is tentera de contraindre les deux opérandes à Object avant d'effectuer la comparaison. Si l'un ou l'autre côté est un type primitif ou alors Un Variant qui ne contient pas d'objet (soit un sous-type non objet, soit vtEmpty), la comparaison entraînera une erreur d'exécution 424 - "Objet requis". Si un opérande appartient à un autre interface le même objet, la comparaison renverra True. Si vous devez vérifier la validité à la fois d'une instance, alors et interface, ObjPtr (gauche) = ObjPtr (droite) utilise ObjPtr (gauche) = ObjPtr (droite).

Remarques

La syntaxe VBA permet le chaînage des opérateurs de comparaison, mais en général ces constructions doivent être évitées. La comparaison se fait toujours de gauche à droite sur seulement 2 opérandes à la fois, et chaque comparaison aboutit à un booléen. Par exemple, l'expression...

A = 2 : b = 1 : c = 0 expr = a> b> c

Peut être lu dans certains contextes comme vérifiant si b est compris entre a et c. En VBA, cela est évalué comme suit :

A = 2 : b = 1 : c = 0 expr = a> b> c expr = (2> 1)> 0 expr = True> 0 expr = -1> 0 " CInt (True) = -1 expr = False

Tout opérateur de comparaison autre que Is used with Object comme opérande s'exécutera sur la valeur de retour du membre par défaut d'Object. Si l'objet n'a pas de membre par défaut, la comparaison entraînera une erreur d'exécution 438 - « L'objet ne prend pas en charge sa propriété ou sa méthode.

Si l'objet n'est pas initialisé, la comparaison entraînera une erreur d'exécution 91 - "Variable objet ou avec variable bloc verrouillée".

Si le littéral Nothing est utilisé avec un opérateur de comparaison autre que Is, cela entraînera une erreur de compilation "Invalid Object Usage".

Si l'objet Objet par défaut est un autre objet, VBA invoquera continuellement l'élément par défaut de chaque valeur de retour suivante jusqu'à ce qu'un type primitif soit renvoyé ou qu'une erreur soit générée. Par exemple, supposons que SomeClass a un membre par défaut, Value, qui est une instance ChildClass avec un membre ChildValue par ChildValue. Comparaison...

Définir x = Nouveau SomeClass Debug.Print x> 42

Sera évalué comme :

Définir x = Nouveau SomeClass Debug.Print x.Value.ChildValue> 42

Si soit l'opérande est numérique et autre l'opérande est une String ou un Variant de sous-type String, une comparaison numérique sera effectuée. Dans ce cas, si la chaîne ne peut pas être convertie en un nombre, la comparaison entraînera une erreur d'exécution 13 - "Type incompatibilité".

Si un tous les deux les opérandes sont String ou Variant de sous-type String, la comparaison de chaînes sera effectuée en fonction du paramètre de comparaison de paramètre de l'unité de code. Ces comparaisons sont faites nature par nature. noter que représentation symbolique Chaîne contenant un nombre ne pas est identique à la correspondance des valeurs numériques :

Public Sub Example () Dim left As Variant Dim right As Variant left = "42" right = "5" Debug.Print left> right "Prints False Debug.Print Val (left)> Val (right)" Prints True End Sub

Pour cette raison, assurez-vous de transmettre les variables String ou Variant aux nombres avant de faire des comparaisons d'inégalités numériques.

Si l'un des opérandes est Date, une comparaison numérique sur la valeur double sous-jacente sera effectuée si l'autre opérande est numérique ou peut être converti en un type numérique.

Si l'autre opérande est une chaîne ou un variant d'un sous-type de chaîne pouvant être encapsulé dans la date en utilisant les paramètres régionaux actuels, la chaîne sera transmise à la date. S'il ne peut pas être appliqué à une date dans les paramètres régionaux actuels, la comparaison entraînera une erreur d'exécution 13 - « Incompatibilité de type ».

Soyez prudent lorsque vous comparez des valeurs Double ou Simple et des booléens. Contrairement à d'autres types numériques, les valeurs non nulles ne peuvent pas être considérées comme vraies en raison du comportement de VBA dans la promotion du type de données de comparaison utilisant la virgule flottante en Double :

Public Sub Example () Dim Test As Double Test = 42 Debug.Print CBool ​​​​(Test) "Imprime vrai". casts : Debug.Print CBool ​​​​(Test) = True "Imprime True Debug.Print CDbl (-1) = CDbl (True)" Imprime True End Sub

Les opérateurs booléens VBA sont utilisés pour combiner les résultats d'expressions booléennes individuelles afin de créer des critères de décision complexes dans une procédure (tableau B.3).

Tableau B.3 - Opérateurs logiques VBA

Logique

Syntaxe

Nom/Description

opérateur

El et E2

Conjonction. Vrai si E1 et E2

sont vrais, sinon faux

El ou E2

Disjonction. Vrai si une expression

vivant ou les deux (E1 et E2) sont

égal à Vrai ; sinon - Faux

Pas El

Le déni. Vrai si E1 a une valeur

la valeur est Faux ; Faux si El est

égal à vrai

El Xor E2

Une exception . Vrai si E1 et E2

avoir des significations différentes; autrement -

El Eqv E2

Équivalence... Vrai si E1 a

a la même signification que E2;

sinon - Faux

El Imp E2

Implication. Faux lorsque E1 est

égal à Vrai et E2 est égal à Faux ; autrement

Vrai.

Les opérandes E de ce tableau représentent toute expression booléenne valide, telle qu'une opération de comparaison.

Priorités opérationnelles pour l'évaluation des expressions complexes

Expression complexe - c'est toute expression formée de deux ou plusieurs expressions. Le Tableau B.4 contient les opérations par groupes par ordre décroissant de priorité, c'est-à-dire que plus le groupe est situé bas, plus les opérations qui y sont indiquées sont exécutées tardivement. Les parenthèses sont utilisées pour modifier cet ordre. Les opérations de même niveau sont effectuées de gauche à droite dans l'ordre dans lequel elles sont écrites dans l'expression.

Tableau B.4 - Priorités des opérations VBA

Opérateur

Commentaires (1)

Exponentiation, priorité la plus élevée

Unaire moins - changer le signe d'un nombre

La multiplication et la division ont la même priorité ; ils vous-

Division entière

Reste de la division

L'addition et la soustraction ont la même priorité ; ils vous-

sont numérotés tels qu'ils apparaissent dans l'expression de gauche à droite

Toute concaténation de chaîne est effectuée après tout

opérations arithmétiques dans une expression et avant tout

comparaison ou opérations logiques

<, <=, >, >=,

Tous les opérateurs de comparaison ont la même priorité et

sont numérotés tels qu'ils apparaissent dans l'expression de gauche à droite.

Utilisez des parenthèses pour regrouper les opérateurs

fossé de comparaison dans les expressions

casse-tête

Not And Or Xor Eqv Im p ​​​​- ont la priorité la plus basse

les opérateurs

Annexe B Fonctions mathématiques VBA

VBA fournit un ensemble standard de fonctions mathématiques présentées dans le Tableau B.1.

Tableau B.1 - Fonctions mathématiques VBA

Retours / action

Renvoie la valeur absolue de N

Cosinus de l'angle N, où N est l'angle mesuré en ra-

Renvoie le sinus d'un angle ; N est l'angle mesuré en

radians

Renvoie la tangente d'un angle ; N - angle en radians

Renvoie l'arc tangente de N sous la forme d'un angle en radians

Renvoie la constante e élevée à la puissance N (e -

c'est la base des logarithmes naturels et il (par-

environ) égal à 2,718282

Renvoie la partie entière N. Fix n'arrondit pas le nombre, mais

négatif, Fix renvoie le négatif le plus proche

entier supérieur ou égal à N

Renvoie la partie entière de N. Int n'arrondit pas le nombre, mais

rejette toute partie fractionnaire. Si N est

négatif, Int renvoie le négatif le plus proche

entier inférieur ou égal à N

Renvoie le logarithme népérien de N

Renvoie un nombre aléatoire ; l'argument n'est pas-

obligatoire. Utiliser la fonction Rnd uniquement

après avoir initialisé le générateur VBA de nombres aléatoires

s'est assis avec l'opérateur Randomize

Renvoie le signe d'un nombre : –1 si N est négatif ;

1 si N est positif ; 0 si N est 0

Renvoie la racine carrée de N. Affichages VBA

erreur d'exécution si N est négatif

L'opérande N signifie-t-il une expression numérique ? recevable dans

L'argument pour les fonctions trigonométriques (sinus, cosinus et tangente) est en radians, pas en degrés. La fonction trigonométrique inverse A t n (x) renvoie au programme la valeur de l'angle en radians de -π/2 à π/2 dont la tangente est égale à la valeur de l'expression arithmétique x.

La relation entre le radian et les mesures en degrés de l'angle est exprimée par le nombre irrationnel ≈ 3.14159265358979323846.

Radians =

Degrés × π

Degrés =

Radians × 180

Pour convertir les degrés en radians, vous pouvez également utiliser la fonction Excel intégrée - Application.Radians (x), où x est l'angle,

donné en radians.

Pour obtenir la valeur numérique de la constante avec une précision de 15 chiffres de la mantisse, vous pouvez utiliser la fonction intégrée Excel Application.Pi () ou la fonction VBA arctangente

Pi = Application.Pi () ou Pi = 4 * Atn (1)

Exemples d'écriture de fonctions trigonométriques

Vous avez aimé l'article ? A partager entre amis :