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

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.