Fonctions de conversion type
Chaque fonction force une expression à un type de données spécifique.
Syntaxe
- CBool(expression)
- CByte(expression)
- CCur(expression)
- CDate(expression)
- CDbl(expression)
- CDec(expression)
- CInt(expression)
- CLng(expression)
- CLngLng (expression) (valide sur plateformes 64 bits uniquement).
- CLngPtr(expression)
- CSng(expression)
- CStr(expression)
- CVar(expression)
L’argument requis expression est toute expression de chaîne ou expression numérique.
Types de retours
Le nom de la fonction détermine le type de renvoi comme illustré ci-dessous :
Fonction | Type de retour | Plage pour argument expression |
---|---|---|
CBool | Boolean | Toute chaîne ou expression numérique valide. |
CByte | Byte | 0 à 255. |
CCur | Devise | -922,337,203,685,477.5808 à 922,337,203,685,477.5807. |
CDate | Date | Toute expression de date valide. |
CDbl | Double | -1, 79769313486231E308 à - 4, 94065645841247E-324 pour les valeurs négatives ; 4, 94065645841247E-324 à 1, 79769313486232E308 pour les valeurs positives. |
CDec | Decimal | Pour les nombres à échelle zéro, autrement dit, nombres sans décimale 79,228,162,514,264,337,593,543,950,335. Pour les nombres à 28 positions décimales, la plage est 7,9228162514264337593543950335. Le plus petit nombre possible non-zéro autorisé est 0,0000000000000000000000000001. |
CInt | Entier | -32 768 à 32 767 ; fractions arrondies. |
CLng | Long | -2,147,483,648 à 2,147,483,647 ; fractions arrondies. |
CLngLng | LongLong | -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807 ; fractions arrondies. (Valide sur les plateformes 64 bits uniquement). |
CLngPtr | LongPtr | -2,147,483,648 to 2,147,483,647 sur les systèmes 32 bits, -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807 sur les systèmes 64 bits ; fractions arrondies pour les systèmes 32 bits et 64 bits. |
CSng | Unique | -3,402823E38 et -1,401298E-45 pour les valeurs négatives ; 1, 401298E-45 et 3,402823E38 pour les valeurs positives. |
CStr | String | Renvois pour CStr dépendent de l’argument expression. Reportez-vous au tableau suivant. |
CVar | Variant | Même plage que Double pour les valeurs numériques. Même plage que Plage pour les expressions non numériques. |
Remarques
Si l’expression transmise à la fonction est en dehors de la plage du type de données dans laquelle elle est convertie, une erreur se produit.
Remarque
Les fonctions de conversion doivent être utilisées pour assigner explicitement LongLong (y compris LongPtr sur les plateformes 64 bits) aux types entiers plus petits. Les conversions implicites de LongLong à des intégrales de plus petite taille ne sont pas autorisées.
En règle générale, vous pouvez documenter votre code avec les fonctions de conversion de type de données pour montrer que le résultat d’une opération doit être exprimé dans un type de données spécifique au lieu du type des données par défaut. Par exemple, utiliser CCur pour forcer l’arithmétique de devise dans les cas où la précision simple, double précision ou entier arithmétique sont normalement dirigeants.
Vous devez utiliser les fonctions de conversion de type de données au lieu de Val pour fournir des conversions à l’international d’un type de données à l’autre. Par exemple, lorsque vous utilisez CCur, différents séparateurs de décimale, différents séparateurs de milliers et différentes options de devise sont correctement reconnus selon les paramètres régionaux de votre ordinateur.
Lorsque la partie fractionnaire est exactement 0,5, CInt et CLng arrondissent toujours au nombre pair le plus proche. Par exemple, 0,5 arrondit à 0 et 1,5 arrondi à 2. CInt et CLng diffèrent des fonctions Résoudre et Ent, qui tronquent, plutôt qu’arrondissent, la partie fractionnaire d’un nombre. Par ailleurs, résoudre et Entrenvoient toujours une valeur du même type que celle qui est passée.
Utilisez la fonction IsDate pour déterminer si ladate peut être convertie en une date ou une heure. CDate reconnaît littéraux date et heure ainsi que des chiffres dans la plage de dates acceptables. Lors de la conversion d’un nombre à une date, la partie nombre entier est convertie en une date. Une partie fractionnaire du nombre est convertie en une heure de la journée, en commençant à minuit.
CDate reconnaît les formats de date en fonction des paramètres régionaux de votre système. L’ordre correct de jour, mois et année peut ne pas être déterminé s’il est fourni dans un format différent des paramètres de date reconnus. En outre, un format de date longue n’est pas reconnu s’il contient également la chaîne de jour de semaine.
La CVDate fonction est également fournie pour assurer la compatibilité avec les versions antérieures de Visual Basic. La syntaxe de la CVDate fonction est identique à la CDate fonction ; Toutefois, CVDate renvoie un variante dont le sous-type est Date au lieu d’un réel Date type. Dans la mesure où il existe désormais un type intrinsèque Date,CVDate n’est pas essentiel. Le même effet peut être obtenu en convertissant une expression en Date puis en l’affectant à une variante. Cette technique est cohérente avec la conversion de tous les autres types intrinsèques à leur équivalentes variante sous-catégories.
Remarque
La fonction CDec ne renvoie pas un type de données isolé, mais un type Variant dont la valeur a été convertie en sous-type Decimal.
Les retours pour CStr dépendent de l’argument expression .
#If expression Then | CStr renvoie |
---|---|
Boolean | Une chaîne contenant True ou False. |
Date | Une chaîne contenant une date au format de date court de votre système. |
Empty | Une chaîne de longueur nulle (""). |
Erreur | Une chaîne contenant le mot Error suivi du numéro d’erreur. |
Null | Une erreur d’exécution. |
Autres numérique | Une chaîne contenant le nombre. |
Exemple de fonction CBool
Cet exemple utilise la CBool fonction pour convertir une expression en booléenne. Si l’expression correspond à une valeur différente de zéro, CBool renvoie vrai, dans le cas contraire, elle renvoie faux.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
Exemple de fonction CByte
Cet exemple utilise la CByte fonction pour convertir une expression en Octet.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Exemple de fonction CCur
Cet exemple utilise la CCur fonction pour convertir une expression en Devise.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2) ' Convert result of MyDouble * 2
' (1086.429176) to a
' Currency (1086.4292).
Exemple de fonction CDate
Cet exemple utilise la CDate fonction pour convertir une chaîne enDate. En règle générale, les dates et heures codées sous forme de chaînes (comme illustré dans cet exemple) ne sont pas recommandé. Utiliser littéraux date et heure, tels que #2/12/1969#
et #4:45:23 PM#
à la place.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" ' Define date.
MyShortDate = CDate(MyDate) ' Convert to Date data type.
MyTime = "4:35:47 PM" ' Define time.
MyShortTime = CDate(MyTime) ' Convert to Date data type.
Exemple de fonction CDbl
Cet exemple utilise la CDbl fonction pour convertir une expression en Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784) ' MyCurr is a Currency.
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' Convert result to a Double.
Exemple de fonction CDec
Cet exemple utilise la CDec fonction pour convertir une valeur numérique en décimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Exemple de fonction CInt
Cet exemple utilise la CInt fonction pour convertir une valeur numérique en Entier.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Exemple de fonction CLng
Cet exemple utilise la CLng fonction pour convertir une valeur numérique en Long.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1) ' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2) ' MyLong2 contains 25428.
Exemple de fonction CSng
Cet exemple utilise la CSng fonction pour convertir une valeur numérique en Unique.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1) ' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2) ' MySingle2 contains 75.34216.
Exemple de fonction CStr
Cet exemple utilise la CStr fonction pour convertir une valeur numérique en chaîne.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble) ' MyString contains "437.324".
Exemple de fonction CVar
Cet exemple utilise la CVar fonction pour convertir une expression en Variante.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & 000) ' MyVar contains the string
' 4534000.
Voir aussi
- Résumé des types de données
- Glossaire Visual Basic Editor (VBE)
- Rubriques conceptuelles de Visual Basic
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.