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é.
|
Chr | Renvoie le caractère ANSI correspondant à la valeur numérique du paramètre.
|
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 :
|
DateDiff | Calcule le nombre d'intervalles de temps spécifiés entre deux dates spécifiées.
|
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.
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.
|
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 ) Où ligne La chaîne d'origine est-elle et longueur- le nombre de caractères renvoyés, à compter du début de la ligne.
|
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 ) Où 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.
|
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 ) Où 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.
|
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.
|
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 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 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 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 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 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 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 Remarques: Résultat est généralement de type Double. C'est vrai, il y a des exceptions : Si un numéro 1 ou alors numéro 2- Null, alors il est simplement interprété comme un 0 normal. Exemples: Faible MaValeur 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 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 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 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 opérateur + (addition)
Utilisé pour additionner deux nombres. Syntaxe: résultat = expression1+expression2 Paramètres: résultat- obligatoire; n'importe quelle variable numérique 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 Variant, les règles suivantes s'appliquent : 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 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 Var1 = "34" Var1 = "34" 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 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 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 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 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 Opérateurs de comparaison Utilisé pour comparer certaines expressions. Ils ont 3 syntaxes : Syntaxe: résultat = expression1 opérateur de comparaison expression2 Paramètres: résultat obligatoire; n'importe quelle variable numérique 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). Vrai si
Faux si
Nul si
une chose 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 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 : 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 Var1 = "5": Var2 = 4 "en VB, vous pouvez utiliser un deux-points, Var1 = 5 : Var2 = Vider Var1 = 0 : Var2 = Vider 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 Exemples: Faible MonObjet, VotreObjet, CetObjet, _ Définissez VotreObjet = MonObjet "créer des liens vers des objets 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 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 : Exemples: Faible MonChèque 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 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 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 Remarques: Le tableau suivant montre le fonctionnement de l'opérateur And : , et expression2 =
Alors le résultat =
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
Exemples: Faible A, B, C, D, MyCheck 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) Remarques: Le tableau suivant montre le fonctionnement de l'opérateur Ou : , et expression2 =
Alors le résultat =
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
Le résultat est en gras. Exemples: Faible A, B, C, D, MyCheck 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) 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
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 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 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) 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
Le résultat est en gras. Exemples: Faible A, B, C, D, MyCheck 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) 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
Exemples: Faible A, B, C, D, MyCheck 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) Remarques: Le tableau suivant montre le fonctionnement de l'opérateur Imp : , et expression2 =
Alors le résultat =
Pour les bits, l'opérateur Imp fonctionne comme suit (regardez de gauche à droite) 0 0 1
Exemples: Faible A, B, C, D, MyCheck 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. 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
numéro
Puissance- est obligatoire ; n'importe quelle expression numérique
MyValue = 2 ^ 2 " Renverra 4.
MaValeur = 2 ^ 3 ^ 3 " remboursera
512 (2^3=8, 8^3=512)
MaValeur = (-5) ^ 3 " remboursera
-125.
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 "130ms !
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique
MyValue = 2 * 2 " Renverra 4.
MaValeur = 459,35 * MaValeur "(! LANG : Renvoie 495,35 * 4
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique
MaValeur = 10/4"
!} remboursera
2.5.
MaValeur = 10/3 " remboursera
3.333333.
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique
MaValeur = 11 \ 4 " remboursera
2.
MaValeur = 9 \ 3 " remboursera
3.
MaValeur = 100 \ 3 " remboursera
33.
numéro 1- obligatoire; n'importe quelle expression numérique
numéro 2- obligatoire; n'importe quelle expression numérique
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.
expression1
expression2- obligatoire; toute expression
MonNuméro = 2 + 2 " remboursera
4.
MonNuméro = 4257,04 + 98112 " remboursera
102369.04.
Var2 = 6 "Initialisation des variables mixtes
MonNuméro = Var1 + Var2 " remboursera
40.
Var2 = "6" "Initialisation des variables avec des chaînes
MonNuméro = Var1 + Var2 " remboursera"346" (s'est produit
"concaténation, pas addition!).
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
expression- obligatoire; toute expression
expression1- obligatoire; toute expression
expression2- obligatoire; toute expression
alors le résultat est Date.
MonRésultat = 4 - 2 " remboursera
2.
MonRésultat = 459,35 - 334,90 " remboursera
124.45.
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).
résultat = objet1 Est objet2
résultat = ligne Comme goûter
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 chiffresOpérateur
< (меньше чем)
expression1 <
expression2
expression1 >=
expression2
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
MonRésultat = (45< 35) "
remboursera Faux.
MonRésultat = (45 = 45) " remboursera Vrai.
MonRésultat = (4<> 3) "
remboursera Vrai.
MonRésultat = ("5"> "4") " remboursera Vrai.
"pour séparer les opérateurs.
MonRésultat = (Var1> Var2) " remboursera Vrai.
MonRésultat = (Var1> Var2) " remboursera Vrai.
MonRésultat = (Var1 = Var2) " remboursera Vrai.
Ensemble B = C
AutreObjet, CetObjet, MonChèque
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.
* 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
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.
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression
MyStr = "Bonjour" & "Monde"
"
remboursera la chaîne "Hello World".
MyStr = "VÉRIFIER" & 123 & "VÉRIFIER"
"Retournera la chaîne" CHECK 123 CHECK ".
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expressionSi expression1 =
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
0 1 0
1 0 0
1 1 1
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).
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expressionSi expression1 =
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
0 1 1
1 0 1
1 1 1
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:
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression
0 1 1
1 0 1
1 1 0
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
a = 4
b = 7
a = a Xou b
b = a Xou b
a = a Xou b
expression obligatoire; Toute expression
1 0
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)
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expression
0 1 0
1 0 0
1 1 1
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
expression1 obligatoire; Toute expression
expression2 obligatoire; Toute expressionSi expression1 =
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
0 1 1
1 0 0
1 1 1
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 -1signe Nom La description
=
Également Renvoie 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égal Renvoie True si les opérandes gauche et droit ne sont pas égaux.
>
Mieux que Renvoie True si l'opérande gauche est supérieur à l'opérande droit.
<
Moins que Renvoie True si l'opérande gauche est inférieur à l'opérande droit.
>=
Plus ou égal Renvoie True si l'opérande gauche est supérieur ou égal à l'opérande droit.
<=
Inférieur ou égal Renvoie True si l'opérande gauche est inférieur ou égal à l'opérande droit.
Est Capital de référence Renvoie 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
Priorités opérationnelles pour l'évaluation des expressions complexes