vba variables option explicit vba
Ce didacticiel explique comment déclarer et utiliser des variables VBA. Découvrez également les options explicites, la portée des variables, les variables statiques et constantes:
Dans un ordinateur, toutes les valeurs de données sont stockées dans une mémoire ou un stockage informatique. Pour accéder à ces valeurs, vous devez spécifier un nom associé à cette valeur, qui est appelé une variable dans les langages de programmation.
Dans ce didacticiel, nous allons apprendre à déclarer et définir une variable avec les différents types de portées de variable et également explorer les variables statiques et constantes en détail.
=> Vérifiez ici pour voir de A à Z des didacticiels de formation VBA
Ce que vous apprendrez:
- Variables VBA
- Conclusion
Variables VBA
Variables sont comme des espaces réservés pour les valeurs dans le stockage informatique. Les variables peuvent contenir différentes variétés de valeurs et ces valeurs peuvent changer pendant l'exécution du code.
Chaque variable aura un nom qui sera utilisé pour accéder à la valeur. VBA a certaines contraintes en ce qui concerne la sélection de nom.
Vous trouverez ci-dessous la liste des contraintes:
- Le nom de votre variable ne peut pas comporter plus de 255 caractères.
- Un nom de variable ne peut pas commencer par un nombre.
- Vous ne pouvez pas commencer par des caractères spéciaux tels que!, @, &,., # Ou ne pas contenir d'espaces.
- Les mots clés ne sont pas considérés comme un nom de variable.
Le compilateur lancera une erreur si vous violez ces contraintes
Exemple:
Noms de variable valides: varName, Result12, First_Number
Noms de variable non valides: 123abc, #number, Sub, abc.123
Premier numéro (l'espace n'est pas autorisé entre les mots)
Déclaration d'une variable VBA
Nous devons utiliser le Aucun mot-clé pour déclarer une variable. Il y a 2 sections lors de la déclaration d'une variable. 1stest le nom de la variable et 2ndest le type de valeur à stocker dans la variable appelée Type de données.
Syntaxe: Dim VariableName As DataType
Exemple:
- Dim MyAge As Integer
- Dim My_Percentage comme double
- Dim Full_Name As String
Ici, vous indiquez explicitement au compilateur que ma variable ne doit stocker que ces types de données et VBA s'assurera de renvoyer une erreur d'incompatibilité de type du compilateur lorsqu'une valeur définie pour la variable ne correspond pas au type de données.
Exemple:
Sub example1() Dim Total_Marks As Integer Total_Marks = “” MsgBox Total_Marks End Sub
Mais si vous n'êtes pas sûr du type de données de la variable, alors VBA vous permet d'ignorer le type de données. La syntaxe mentionnée ci-dessous est également valide.
Dim VariableName
Lorsque vous ne déclarez pas le type de données de la variable, VBA le traite comme un type de données Variant, et il est tenu d'accepter tout type d'entier de données comme un entier, une chaîne, un classeur, etc. Dans le même programme, le Les variables de variante peuvent accepter une valeur de chaîne, une valeur entière et tout autre type.
Sub VarientVariable() Dim Total_Marks Total_Marks = '' MsgBox Total_Marks Total_Marks = 544.33 MsgBox Total_Marks Total_Marks = 522 MsgBox Total_Marks End Sub
Comme Total_Marks est une variable variable, contrairement au code précédent, le compilateur ne lèvera aucune erreur comme indiqué ci-dessous.
Remarque: N'oubliez pas que VBA vous permet d'utiliser une variable sans la déclarer.
L'exemple de code ci-dessous donne également un résultat correct. Dans ce cas, VBA traite automatiquement la variable comme un type de données Variant. C'est ce qu'on appelle une déclaration implicite.
Sub VariantVariable() Total_Marks = 444 MsgBox Total_Marks End Sub
Avantages de la déclaration d'une variable
- Facile à déboguer: Il est recommandé de déclarer une variable avant de l'utiliser. Cela nous permet de mieux comprendre les erreurs telles que la discordance de type et les fautes de frappe, réduisant ainsi le risque de s'écarter de la logique du programme.
- Meilleure lisibilité: En tant qu'équipe, de nombreuses personnes examineront le code et la déclaration d'une variable aidera tout le monde avec le type de valeurs que la variable est censée prendre et aidera également les utilisateurs à entrer les valeurs d'entrée appropriées lors de l'exécution du programme.
- Espace de stockage: Si vous ne déclarez pas de variable, VBA la traite comme un type de données Variant qui occupe le plus grand espace en mémoire (16 octets à 22 octets) par rapport aux autres types de données. Par exemple, si vous utilisez une variable de type Byte qui prend juste 1 octet et si vous ne déclarez pas, alors VBA finira par réserver un espace de 16 octets, gaspillant ainsi la mémoire.
Option explicite
Pour nous assurer que toutes les variables sont explicitement déclarées, nous devons utiliser l'instruction Option Explicit avant de les utiliser. Il doit être utilisé au début de toute procédure dans ce module.
Voyons un exemple qui n'utilise pas Option Explicit Statement.
Sub example3() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Exécutez le code (appuyez sur F5 ou sur le bouton Exécuter dans la barre d'outils) et vous obtiendrez une boîte de message vide.
Même si vous avez déclaré la variable, vous vous êtes retrouvé dans une zone de résultat vide en raison de la faute de frappe dans le Msgbox Firt_Name. Option Explicit nous aidera à éliminer de telles erreurs.
Refaisons le même code à l'aide de l'option Explicit. Entrez Option Explicit avant le début de la procédure.
Option Explicit Sub VarientVariable() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Maintenant, si vous exécutez le code (appuyez sur F5 ou sur le bouton Exécuter dans la barre d'outils) et vous obtiendrez une erreur du compilateur.
Vous pouvez faire ajouter VBA Option explicite automatiquement.
Dans l'éditeur VB, Allez dans Outils -> Options -> Sélectionnez «Exiger une déclaration de variable».
À présent Option explicite sera ajouté automatiquement à chaque fois que vous insérez un nouveau module ou enregistrez une nouvelle macro.
Remarque: L'option Explicit ne sera pas ajoutée au code VBA existant. Vous devez l'ajouter manuellement si nécessaire.
Attribution d'une valeur à une variable
Les valeurs peuvent être affectées aux variables en utilisant égal à symbole (=). Si vous faites référence à une cellule dans Excel, vous devez utiliser les fonctions de plage.
Reportez-vous au code ci-dessous.
Sub varValue() Dim var1 As Integer var1 = 10 Range('C1:C14').Value = var1 MsgBox var1 End Sub
Dans l'exemple ci-dessus, var1 est une variable qui stocke la valeur 10 directement en utilisant (=) et la fonction Range aidera à entrer la valeur var1 qui est 10 dans la cellule Excel C1 à C14.
Portée d'une variable
Chaque variable d'un programme aura une portée définie. Cette portée indique au programme les zones dans lesquelles la variable est visible, c'est-à-dire le module ou la fonction qui peut ou ne peut pas utiliser la variable.
VBA a 3 types de portée définis pour la variable.
- Portée au niveau de la procédure
- Portée au niveau du module privé
- Portée au niveau du module public
Portée au niveau de la procédure
Les Variables définies dans une procédure, c'est-à-dire dans le Sous ou la Fonction, ne pourront les utiliser. Celles-ci ne sont visibles pour aucune autre procédure.
Exemple:
Option Explicit Sub ProcScope() Dim msg As String vartext = 'Varible is visible only inside this Sub' MsgBox vartext End Sub Sub VarNotVisible() MsgBox vartext End Sub
Lorsque vous exécutez le code ci-dessus, pour le premier Sub, la msgbox renverra un résultat correct, mais pour le deuxième Sub, une erreur du compilateur sera générée. Parce que la variable vertex n'est visible que pour le 1stsous et pas pour le 2nd. Comme nous avons utilisé Option Explicit, nous obtiendrons une erreur du compilateur pour ne pas définir de variables dans le 2ndsous.
Portée au niveau du module privé
Ces variables sont disponibles pour toutes les procédures du module défini. Par défaut, les variables déclarées avec le Aucun sont considérés comme privés. Mais il est recommandé d'ajouter private pour une meilleure lisibilité.
Prenons le même exemple mais nous déclarerons la variable en dehors de la procédure.
Option Explicit Private vartext As String ‘ Dim vartext As String can also be used Sub PrivateScope() vartext = 'Varible is visible to all procedures' MsgBox vartext, ,”Result from Sub1” End Sub Sub VarIsVisible() MsgBox vartext, ,”Result from Sub2” End Sub
Après l'exécution, vous verrez que la procédure renverra les résultats corrects sans aucune erreur. Pour une compréhension claire, nous avons ajouté le bon titre dans la msgbox.
Portée au niveau du module public
Ces types de variables sont visibles dans toutes les procédures et dans tous les modules d'un projet. Insérez 2 modules. (Faites un clic droit sur une feuille et Insertion -> modules).
Entrez le code ci-dessous dans un module.
Option Explicit Public vartext As String Sub PrivateScope() vartext = 'Varible is visible to all modules' MsgBoxvartext, , 'Result from Sub1' End Sub
Entrez le code ci-dessous dans le 2ème module.
Option Explicit Sub VarIsVisible() MsgBoxvartext, , 'Result from Sub2' End Sub
Les résultats sont présentés ci-dessous
Prenons un exemple pratique et comprenons mieux toute la portée.
Vous trouverez ci-joint le fichier de référence pour le code ci-dessus.
Variable statique
Habituellement, la valeur de la variable n'est conservée que de l'appel de procédure à la fin de la procédure. Il ne conserve pas la valeur une fois l’exécution de la procédure terminée.
Par exemple , dans le code ci-dessus, la valeur de firstNo et secondNo est supprimée dès que la procédure se termine, la prochaine fois que vous exécutez le code, firstNo et secondNo obtiennent la même valeur que celle définie dans le code.
Mais les variables statiques sont celles qui conserveront la valeur de la variable même après l'exécution. Une variable statique n'est autorisée qu'à l'intérieur d'un sous ou d'une fonction.
Considérez le code ci-dessous avec une variable non statique.
Option Explicit Sub staticVariable() Dim count As Integer count = count + 1 Debug.Print count End Sub
Chaque fois que vous appuyez sur F5, vous n'obtiendrez qu'un seul résultat.
Déclarons maintenant la variable comme statique.
Option Explicit Sub staticVariable() Static count As Integer count = count + 1 Debug.Print count End Sub
Chaque fois que vous exécutez le code (F5) Le résultat aura une valeur augmentée pour le compte comme 1, 2, 3, etc. car la variable statique a conservé sa valeur.
Remarque: La variable statique conservera la valeur jusqu'à ce que vous appuyiez sur le bouton Réinitialiser dans la barre d'outils ou que vous fermiez le classeur.
Variable constante
Comme son nom l'indique, la valeur de ces variables ne peut pas être modifiée pendant l'exécution du programme. Une fois qu'une constante est déclarée, elle ne peut pas être modifiée ou affectée d'une nouvelle valeur.
La déclaration d'une constante peut se faire au sein d'une procédure ou au niveau du module (surtout des procédures).
Option Explicit Sub constantVariable() Const SpeedLimitOfcar As String = '90kmph' Dim myCarSpeed As String myCarSpeed = '70kmph' If myCarSpeed > SpeedLimitOfcar Then MsgBox 'overspeed: Reduce the speed' Else MsgBox 'Within the limit: Always drive below : ' & SpeedLimitOfcar End If End Sub
Si vous essayez de modifier la valeur constante, une erreur de compilation sera générée.
Option Explicit Sub ChangeConstantVariable() Const SpeedLimitOfcar As Integer = 90 SpeedLimitOfcar = SpeedLimitOfcar + 10 MsgBox SpeedLimitOfcar End Sub
FAQ
Q # 1) Comment définir une variable publique dans VBA?
Répondre: Les variables publiques sont déclarées avant le début d'une procédure. Le mot clé public doit être utilisé lors de la déclaration d'une variable.
Public Total_Marks As Integer
Q # 2) Quel type de variables ne peut pas être déclaré en dehors de la procédure?
Répondre: Les variables statiques ne peuvent pas être déclarées en dehors de la procédure dans VBA et vous obtiendrez une erreur de compilation.
Q # 3) Comment déclarer une variable dans VBA?
Répondre: Le mot-clé Dim est utilisé pour déclarer une variable. Dim signifie Dimension.
Dim variablename As Datatype
Q # 4) Comment attribuer une valeur de variable à une cellule dans VBA?
Répondre: Vous pouvez utiliser la fonction Range.
var1 = 10
Plage ('C1: C14'). Valeur = var1
Q # 5) Que sont les variables dans VBA?
Répondre: Les variables sont comme des espaces réservés pour les valeurs dans le stockage informatique. Les variables peuvent contenir différentes variétés de valeurs et ces valeurs peuvent changer pendant l'exécution du code. Chaque variable doit avoir un nom, en utilisant le nom de la variable, l'ordinateur va récupérer la valeur attribuée à cette variable.
Q # 6) Devez-vous déclarer une variable dans VBA?
Répondre: La déclaration est facultative dans VBA. Si vous ne déclarez pas une variable et que vous l’utilisez directement dans la procédure, cela s’appelle une déclaration implicite. Pour éviter les erreurs dans le code et pour une meilleure lisibilité, il est recommandé de déclarer une variable explicitement.
Q # 7) Comment déclarer plusieurs variables dans VBA?
Répondre: Vous pouvez déclarer plusieurs variables dans une seule instruction de déclaration. Il vous suffit de spécifier le nom de la variable séparé par des virgules dans une clause As.
Questions et réponses d'entrevue d'analyste d'assurance qualité
Dim FirstNo, SecondNo As Integer
Vous pouvez également spécifier différentes variables dans une instruction de déclaration. Chaque variable prendra le type de données spécifié dans la clause As après sa partie de nom de variable.
Dim a, b As Single, c, d As Double, e As Integer, f As String
Q # 8) Quand n'y aurait-il aucune différence entre dim et private dans VBA?
Répondre: Si vous déclarez une portée de niveau module privée, il n'y a aucune différence entre déclarer une variable comme dim ou private. Par défaut, les variables déclarées avec le Aucun sont considérés comme privés. Mais il est recommandé d'ajouter private pour une meilleure lisibilité.
Q # 9) Qu'est-ce qu'une variable au niveau du module?
Répondre: Les variables au niveau du module peuvent être privées ou publiques. Les variables privées sont disponibles pour toutes les procédures de ce module et ne sont visibles par aucun autre module. Les variables publiques sont visibles pour toutes les procédures de tous les modules d'un projet.
Conclusion
Une variable est cruciale dans tout langage de programmation. Dans ce tutoriel, nous avons vu ce que sont les variables, comment les déclarer et les utiliser dans le programme. Nous avons également exploré la méthode Option Explicit, qui force l'implémentation de la déclaration explicite.
Différents types de portée de variable qui aident les utilisateurs à déterminer quelles parties du code la variable peut être utilisée ont été discutés. Nous avons appris l'utilisation des variables statiques qui aident à conserver la valeur de la variable et des variables constantes qui aident à maintenir la valeur de la variable inchangée.
=> Visitez ici pour apprendre VBA à partir de zéro
lecture recommandée
- Tutoriel Excel VBA - Introduction à VBA dans Excel
- Méthodes de tableau et de tableau Excel VBA avec des exemples
- Types de données VBA - Types de données numériques et non numériques dans VBA
- Variables Python
- Variables en C ++
- Variables Java et leurs types avec des exemples
- Types de données et variables C # avec exemples
- Variables VBScript: Comment déclarer et utiliser des variables - VBScript Dim