constante
Il est courant de trouver du code contenant des valeurs constantes qui reviennent encore et encore. Vous constaterez peut-être également que le code utilise des nombres difficiles à retenir qui n’ont pas de signification claire.
Dans ces cas, les constantes peuvent être utilisées pour améliorer considérablement la lisibilité et la maintenabilité du code. Les constantes sont des noms significatifs qui remplacent des valeurs numériques ou des chaînes qui ne changent jamais. Bien que les constantes ressemblent un peu aux variables, elles ne peuvent pas être modifiées comme des variables, et les constantes ne peuvent pas non plus se voir attribuer de nouvelles valeurs. Les constantes proviennent de deux sources :
1. Les constantes internes ou définies par le système sont fournies par les applications et les contrôles. Les constantes Visual Basic sont répertoriées dans les bibliothèques d'objets Visual Basic (VB) et Visual Basic pour applications (VBA) dans le « Navigateur d'objets ». D'autres applications fournissant des bibliothèques d'objets, telles que Microsoft Excel et Microsoft P Project, fournissent également des listes de constantes pouvant être utilisées avec les objets, méthodes et propriétés de l'application. Les constantes sont également définies dans la bibliothèque d'objets de chaque contrôle ActiveX. Pour plus d'informations sur l'utilisation du navigateur d'objets, consultez le chapitre 9, « Programmation avec des objets ».
2. Les constantes symboliques ou définies par l'utilisateur sont déclarées à l'aide de l'instruction Const. Les constantes définies par l'utilisateur sont décrites dans la section suivante, « Création de vos propres constantes ».
Dans Visual Basic, les noms de constantes sont au format casse mixte et leur préfixe indique le nom de la bibliothèque d'objets dans laquelle la constante est définie. Les constantes des bibliothèques d'objets Visual Basic et Visual Basic pour Applications commencent par vb, par exemple vbTileHorizontal.
Lors de la conception de préfixes, vous devez faire de votre mieux pour éviter les conflits accidentels. Les constantes portant le même nom mais des valeurs différentes ne doivent pas être présentes. Même si des préfixes sont utilisés, deux bibliothèques d'objets peuvent toujours contenir les mêmes constantes représentant des valeurs différentes. Dans ce cas, la constante référencée dépend de la bibliothèque d’objets ayant la priorité la plus élevée. Pour plus d'informations sur la modification de la priorité de la bibliothèque d'objets, consultez la section « Boîte de dialogue Références ».
Pour être absolument sûr qu'aucun conflit de noms de constante ne se produit, vous pouvez qualifier les références aux constantes avec la syntaxe suivante :
[libname.][modulename.]constname
Libname est généralement le nom de classe du contrôle ou de la bibliothèque. Modulename est le nom du module dans lequel la constante est définie. Constname est un nom de constante. Chaque élément est défini dans la bibliothèque d'objets et peut être visualisé dans le navigateur d'objets.
Créez vos propres constantes
La syntaxe pour déclarer les constantes est :
[Public|Privé]Constconstantname[Astype]=expression
Le paramètre constantname est un nom symbolique valide (les règles sont les mêmes que celles pour établir les noms de variables), et l'expression se compose d'une constante numérique ou d'une constante chaîne et d'un opérateur mais les appels de fonction ne peuvent pas être utilisés dans l'expression.
L'instruction Const peut représenter des quantités, des dates et des heures :
ConstconPi = 3,14159265358979
PublicConstconMaxPlanetsAsInteger=9
ConstconReleaseDate=#1/1/95#
Les constantes de chaîne peuvent également être définies à l'aide de l'instruction Const :
PublicConstconVersion=07.10.A
ConstconCodeName=Enigme
Plusieurs déclarations de constantes peuvent être placées sur une seule ligne si elles sont séparées par des virgules :
PublicConstconPi=3.14,conMaxPlanets=9,_
conWorldPop=6E 09
L'expression à droite du signe égal (=) est souvent un nombre ou une chaîne littérale, mais peut également être une expression dont le résultat est un nombre ou une chaîne (bien que l'expression ne puisse pas contenir d'appel de fonction). Vous pouvez même définir de nouvelles constantes en utilisant des constantes définies précédemment.
ConstconPi2=conPi*2 Une fois la constante définie, elle peut être placée dans le code pour rendre le code plus lisible. Par exemple:
Système Solaire Statique (1ToconMaxPlanètes)
IfnumPeople>conWorldPopThenExitSub
Définir la plage de constantes définies par l'utilisateur
Comme les déclarations de variables, les instructions Const ont une portée et utilisent les mêmes règles :
Pour créer une constante qui existe uniquement dans une procédure, déclarez la constante à l'intérieur de la procédure.
Pour créer une constante valide pour toutes les procédures du module mais pas pour tout code extérieur au module, déclarez la constante dans la section de déclaration du module.
Pour créer une constante valide dans toute votre application, déclarez-la dans la section déclaration d'un module standard et placez le mot-clé Public devant Const. Les constantes publiques ne peuvent pas être déclarées dans un module de formulaire ou un module de classe.
Pour des informations plus détaillées sur la portée, consultez la section « Comprendre la portée des variables » plus haut dans ce chapitre.
Évitez les références circulaires
Étant donné que les constantes peuvent être définies en termes d'autres constantes, il faut veiller à ne pas créer de cycles ou de références circulaires entre plus de deux constantes. Une boucle se produit lorsqu’il y a plus de deux constantes publiques dans un programme et que chaque constante publique est définie par une autre. Par exemple:
'Dans le Module1 :
PublicConstconA=conB*2 'Dans toute l'application
' est valide dans '.
'Dans le Module2 :
PublicConstconB=conA/2 'Dans toute l'application
' est valide dans '.
Si une boucle se produit, Visual Basic générera un message d'erreur lors de la tentative d'exécution de l'application. Le programme ne peut pas être exécuté sans résoudre la référence circulaire. Pour éviter les cycles, les constantes publiques peuvent être limitées à un seul module, ou à quelques modules au maximum.
type de données
Une variable est un endroit utilisé pour stocker des valeurs. Elle a un nom et un type de données. Le type de données d'une variable détermine la manière dont les bits représentant ces valeurs sont stockés dans la mémoire de l'ordinateur. Vous pouvez également spécifier le type de données d'une variable lors de sa déclaration. Toutes les variables ont un type de données pour déterminer quel type de données peut être stocké.
Par défaut, si le type de données n'est pas spécifié dans la déclaration, le type de données de la variable est Variant. Le type de données Variant est comme un caméléon, il peut représenter différents types de données à différentes occasions. Lorsque la variable spécifiée est une variable Variant, il n'est pas nécessaire d'effectuer une conversion entre les types de données. Visual Basic effectuera automatiquement diverses conversions nécessaires.
Toutefois, si vous savez qu'une variable stocke toujours des données d'un type spécifique et que vous déclarez une variable de ce type spécifique, Visual Basic gérera ces données plus efficacement. Par exemple, une variable qui stocke le nom d'une personne est mieux représentée sous la forme d'un type de données String, car les noms sont toujours constitués de caractères.
En plus des variables, les types de données sont également utilisés dans d'autres situations. Lors de l'attribution d'une valeur à une propriété, la valeur a un type de données ; les paramètres de la fonction ont également un type de données. En fait, dans Visual Basic, tout ce qui concerne les données est lié aux types de données.
Vous pouvez également déclarer un tableau de n’importe quel type primitif.
DétailsPour plus de détails, consultez la section « Tableaux » plus loin dans ce chapitre. Le chapitre 15, « Conception axée sur les performances et la compatibilité » aborde également l'amélioration des performances des applications en sélectionnant les types de données.
Déclarer des variables avec des types de données
Avant d'utiliser une variable non Variant, vous devez déclarer la variable comme Astype à l'aide d'une instruction Private, Public, Dim ou Static. Par exemple, les instructions suivantes déclarent respectivement des variables de type Integer, Double, String et Devise :
PrivateIAsInteger
DimAmtAsDouble
StaticYourNameAsString
PublicBillsPaidAsCurrency
Une instruction de déclaration peut combiner plusieurs déclarations, veuillez consulter l'instruction suivante :
PrivateIAsInteger,AmtAsDouble
PrivateYourNameAsString,BillsPaidAsCurrency
Test privé, montant, JAsInteger
Notez que si aucun type de données n'est fourni, la variable spécifiée est du type par défaut. Dans l'exemple ci-dessus, les variables Test et Amount sont de type de données Variant. Si votre expérience avec d'autres langages de programmation vous a amené à croire que toutes les variables d'une même instruction de déclaration ont le même type de données spécifié (Integer dans ce cas), alors les résultats ici peuvent être rafraîchissants.
Type de données numérique
VisualBasic prend en charge plusieurs types de données numériques : Integer (entier), Long (entier long), Single (virgule flottante simple précision), Double (virgule flottante double précision) et Devise (devise). Les types numériques occupent généralement moins d’espace de stockage que les types Variant.
Si vous savez qu'une variable stockera toujours des entiers (comme 12) plutôt que des nombres avec un point décimal (comme 3,57), vous devez la déclarer comme un type Integer ou Long. Les entiers effectuent des opérations plus rapidement et occupent moins de mémoire que les autres types de données. Les types entiers sont particulièrement utiles lorsqu’ils sont utilisés comme variables de compteur dans les boucles For...Next.
Pour plus d'informations sur les structures de contrôle, voir « Présentation des structures de contrôle » plus loin dans ce chapitre. Si les variables contiennent des décimales, elles peuvent être déclarées comme variables simples, doubles ou monétaires. Le type de données Devise prend en charge 4 chiffres à droite du point décimal et 15 chiffres à gauche du point décimal ; il s'agit d'un type de données précis à virgule fixe adapté aux calculs de devises. Les nombres à virgule flottante (simples et doubles) ont une plage valide beaucoup plus grande que la devise, mais de petites erreurs de report sont possibles.
Notez que les valeurs à virgule flottante peuvent être représentées par mmmEeee ou mmmDeee, où mmm est la mantisse et eee est l'exposant (élevé à la puissance de base 10). La valeur positive maximale du type de données Single est 3,402823E 38, ou 3,4 fois 10 à la puissance 38 ; la valeur positive maximale du type de données Double est 1,79769313486232D 308, ou 1,8 fois 10 à la puissance 308. L’utilisation de D pour séparer les parties mantisse et exposant d’un littéral numérique entraîne le traitement de la valeur comme un type de données Double. De même, l’utilisation de E de cette manière entraîne le traitement de la valeur comme un type de données unique.
Type de données octet
Si la variable contient un nombre binaire, déclarez-la comme un tableau de type de données Byte (les tableaux sont abordés dans « Tableaux » plus loin dans ce chapitre). Le stockage des données binaires dans des variables d'octet préserve les données lors de la conversion du format. Lorsqu'une variable String est convertie entre les formats ANSI et Unicode, toutes les données binaires de la variable seront détruites. Visual Basic convertit automatiquement entre ANSI et Unicode dans l'une des situations suivantes :
Lors de la lecture d'un fichier
Lors de l'écriture d'un fichier
Lors de l'appel d'une DLL
Lors de l'appel de méthodes et de propriétés d'un objet
À l'exception de la soustraction unaire, tous les opérateurs pouvant opérer sur des entiers peuvent opérer sur le type de données Byte. Étant donné que Byte est un type non signé compris entre 0 et 255, il ne peut pas représenter de nombres négatifs. Ainsi, lors d'une soustraction unaire, VisualBasic convertit d'abord l'octet en un entier signé.
Toutes les variables numériques peuvent être affectées entre elles et à des variables de type Variant. Avant d'attribuer un nombre à virgule flottante à un entier, Visual Basic arrondit la partie décimale du nombre à virgule flottante au lieu de la supprimer.
Détails Pour plus de détails sur la conversion Unicode et ANSI, consultez le chapitre 16, « Internationalisation ».
Type de données chaîne
Si une variable contient toujours une chaîne et jamais une valeur numérique, vous pouvez la déclarer comme type String.
PrivateSAsString
Vous pouvez ensuite attribuer une chaîne à cette variable et opérer dessus à l'aide de fonctions de chaîne.
S=Base de données
S=Gauche(S,4)
Par défaut, une variable ou un paramètre String est une chaîne de longueur variable. À mesure que de nouvelles données sont affectées à une chaîne, sa longueur peut augmenter ou diminuer. Il est également possible de déclarer une chaîne ayant une longueur fixe. Une chaîne de longueur fixe peut être déclarée avec la syntaxe suivante :
Taille de chaîne*
Par exemple, pour déclarer une chaîne de 50 caractères, utilisez l'instruction suivante :
DimEmpNameAsString*50
Si moins de 50 caractères sont affectés à la chaîne, la partie manquante de EmpName est remplie d'espaces. Si la longueur attribuée à la chaîne est trop longue et ne peut pas devenir une chaîne de longueur fixe, Visual Basic tronquera directement les caractères en excès.
Étant donné que les chaînes de longueur fixe sont remplies d'espaces à la fin de l'espace supplémentaire, les fonctions Trim et RTrim qui suppriment les espaces peuvent s'avérer très utiles lorsqu'il s'agit de chaînes de longueur fixe. Les chaînes de longueur fixe dans les modules standard peuvent être déclarées comme publiques ou privées. Dans les formulaires et les modules de classe, les chaînes de longueur fixe doivent être déclarées Private.
Pour plus de détails, consultez « Fonctions Ltrim, RTrim et Trim » dans le « Manuel de référence du langage Visual Basic 6.0 ».
Échanger des chaînes et des chiffres
Si la chaîne représente une valeur numérique, la chaîne peut être affectée à une variable numérique. Des valeurs numériques peuvent également être attribuées aux variables de chaîne. Par exemple, placez des boutons de commande, des zones de texte et des zones de liste sur un formulaire. Entrez le code suivant dans l'événement Click du bouton de commande. Exécutez l'application et cliquez sur le bouton de commande.
PrivateSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
strY=100,23
intX=strY 'Passez la chaîne à la variable numérique.
List1.AddItemCos(strY) 'Ajoute la valeur cosinus de la valeur dans la chaîne.
'Ajouter à la zone de liste.
strY=Cos(strY) 'Transférer la valeur du cosinus vers la variable chaîne.
Text1.Text=strY 'Afficher la chaîne dans la zone de texte.
EndSub
Visual Basic force automatiquement les variables au type de données approprié. Soyez prudent lors de la conversion de chaînes et de valeurs numériques ; si la valeur dans la chaîne transmise n'est pas une valeur numérique, une erreur se produira au moment de l'exécution.
Type de données booléen
Si la valeur de la variable est uniquement constituée d'informations "vrai/faux", "oui/non" et "on/off", elle peut être déclarée comme type booléen. La valeur par défaut de Boolean est False. Dans l'exemple ci-dessous, blnRunning est une variable booléenne qui stocke un simple paramètre oui/non.
DimblnRunningAsBoolean
« Vérifiez si la bande tourne.
IfRecorder.Direction=1Alors
blnRunning=Vrai
Fin
Type de données Date
Les valeurs de date et d'heure peuvent être contenues soit dans le type de données Date spécifique, soit dans des variables Variant. Les propriétés générales de date s’appliquent aux deux types.
Pour plus d'informations, consultez la section « Stockage des valeurs de date/heure dans les variables variantes » des « Rubriques avancées sur les variables » dans le manuel en ligne.
Lorsque d'autres types de données numériques sont convertis en Date, la valeur à gauche du point décimal représente les informations de date et la valeur à droite du point décimal représente l'heure. Minuit est 0 et midi est 0,5. Les nombres négatifs représentent des dates antérieures au 31 décembre 1899 après JC.
->