Typkonvertierungsfunktionen

Jede Funktion wandelt einen Ausdruck in einen bestimmten Datentyp um.

Syntax

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CLngLng(expression) Nur auf 64-Bit-Plattformen gültig.
  • CLngPtr(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Das erforderliche expression-Argument ist ein beliebiger Zeichenfolgenausdruck oder ein numerischer Ausdruck.

Rückgabetypen

Der Funktionsname bestimmt den Rückgabetyp, wie im Folgenden dargestellt:

Funktion Rückgabetyp Bereich für expression-Argument
CBool Boolean Ein beliebige gültige Zeichenfolge oder ein numerischer Ausdruck.
CByte Byte 0 bis 255
CCur Currency -922.337.203.685.477,5808 bis 922.337.203.685.477,5807
CDate Date Jeder gültige Datumsausdruck.
CDbl Double -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte.
CDec Decimal 79.228.162.514.264.337.593.543.950.335 für unskalierte Zahlen, d. h. Zahlen ohne Dezimalstellen. Für Zahlen mit 28 Dezimalstellen ist der Bereich 7,9228162514264337593543950335. Die kleinstmögliche Zahl ungleich NULL ist 0,0000000000000000000000000001.
CInt Integer -32.768 bis 32.767; Brüche werden gerundet.
CLng Long -2.147.483.648 bis 2.147.483.647; Brüche werden gerundet.
CLngLng LongLong -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807; Brüche werden gerundet. (Nur auf 64-Bit-Plattformen gültig.)
CLngPtr LongPtr -2.147.483.648 bis 2.147.483.647 auf 32-Bit-Systemen -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 auf 64-Bit-Systemen; Brüche werden für 32-Bit- und 64-Bit-Systeme gerundet.
CSng Single -3,402823E38 bis -1,401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E38 für positive Werte.
CStr String Rückgaben für CStr sind vom expression-Argument abhängig. Informationen finden Sie in der folgenden Tabelle.
CVar Variant Gleicher Bereich wie Double für numerische Werte. Gleicher Bereich wie String für nicht numerische Werte.

Hinweise

Wenn der an die Funktion übergebene Ausdruck außerhalb des Bereichs des Datentyps liegt, in den er konvertiert werden soll, tritt ein Fehler auf.

Hinweis

Konvertierungsfunktionen müssen verwendet werden, um LongLong (einschließlich LongPtr auf 64-Bit-Plattformen) kleineren ganzzahligen Typen zuzuweisen. Implizite Umwandlungen von LongLong -Ausdrücken auf kleinere Integrale sind nicht zulässig.

Im Allgemeinen können Sie Ihren Code mithilfe der Funktionen zur Umwandlung des Datentyps so dokumentieren, dass angezeigt wird, dass das Ergebnis eines Vorgangs als bestimmter Datentyp und nicht als Standard-Datentyp angezeigt werden soll. Verwenden Sie beispielsweise CCur, um Währungsarithmetik zu erzwingen, wenn normalerweise Arithmetik mit einfacher Genauigkeit, doppelter Genauigkeit oder einer ganzen Zahl auftreten würde.

Sie sollten die Typkonvertierungsfunktionen anstelle von Val verwenden, um international offene Konvertierungen von einem Datentyp in einen anderen bereitzustellen. Wenn Sie beispielsweise CCur verwenden, werden unterschiedliche Dezimaltrennzeichen, unterschiedliche Tausendertrennzeichen und verschiedene Währungsoptionen je nach der Gebietsschemaeinstellung Ihres Computers korrekt erkannt.

Wann ist der Bruchteil genau 0,5 beträgt, wird dieser von CInt und CLng immer auf die nächste gerade Zahl gerundet. Beispielsweise wird 0,5 auf 0 und 1,5 auf 2 gerundet. CInt und CLng unterscheiden sich von den Fix- und Int-Funktionen, die den Bruchteil einer Zahl nicht runden, sondern abschneiden. Außerdem geben Fix und Int immer einen Wert desselben Typs zurück, der auch übergeben wurde.

Verwenden Sie die IsDate-Funktion, um zu ermitteln, ob date in ein Datum oder eine Uhrzeit konvertiert werden kann. CDate erkennt Datumsliterale und Uhrzeitliterale sowie einige Zahlen, die in den Bereich zulässiger Datumsangaben fallen. Beim Konvertieren einer Zahl in ein Datum, wird der ganzzahlige Teil in ein Datum umgewandelt. Bruchteile der Zahl werden in eine Uhrzeit umgewandelt, beginnend mit Mitternacht.

CDate erkennt Datumsformate entsprechend den Gebietsschemaeinstellungen Ihres Systems. Die richtige Reihenfolge von Tag, Monat und Jahr kann möglicherweise nicht festgestellt werden, wenn sie in einem Format eingegeben wird, das nicht einer der erkannten Datumseinstellungen entspricht. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch die Zeichenfolge für den Wochentag enthält.

Eine CVDate-Funktion wird auch zum Zwecke der Kompatibilität mit früheren Versionen von Visual Basic bereitgestellt. Die Syntax der CVDate-Funktion ist identisch mit der CDate-Funktion; CVDate gibt jedoch Variant zurück, dessen Untertyp Date anstelle eines tatsächlichen Date-Typs ist. Da es nun einen systeminternen Date-Typ gibt, ist CVDate nicht erforderlich. Derselbe Effekt kann erzielt werden, indem ein Ausdruck in Date konvertiert und diesem dann Variant zugewiesen wird. Diese Vorgehensweise entspricht der Umwandlung aller anderen systeminternen Typen in ihre entsprechenden Variant-Untertypen.

Hinweis

Die CDec -Funktion gibt keinen einzelnen Datentyp zurück; stattdessen gibt sie stets eine Variante zurück, deren Wert in einen Decimal -Subtyp umgewandelt wurde.

Rückgaben für CStr hängen vom Ausdrucksargument ab.

Bei Ausdruck gibt CStr zurück:
Boolean Eine Zeichenfolge mit True oder False.
Date Eine Zeichenfolge mit einem Datum im kurzen Datumsformat Ihres Systems.
Empty Eine Zeichenfolge der Länge Null ("").
Fehler Eine Zeichenfolge, die das Wort Fehler gefolgt von der Fehlernummer enthält.
Null Einen Laufzeitfehler.
Andere numerische Zeichenfolge Eine Zeichenfolge, die die Zahl enthält.

Beispiel zur CBool-Funktion

Dieses Beispiel verwendet die CBool-Funktion, um einen Ausdruck in Boolean zu konvertieren. Wenn der Ausdruck in einen Wert ungleich NULL ausgewertet wird, gibt CBooltrue, andernfalls wird false zurückgegeben.

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. 

Beispiel zur CByte-Funktion

Dieses Beispiel verwendet die CByte-Funktion, um einen Ausdruck in Byte zu konvertieren.

Dim MyDouble, MyByte 
MyDouble = 125.5678 ' MyDouble is a Double. 
MyByte = CByte(MyDouble) ' MyByte contains 126. 

Beispiel zur CCur-Funktion

Dieses Beispiel verwendet die CCur-Funktion, um einen Ausdruck in Currency zu konvertieren.

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). 

Beispiel zur CDate-Funktion

Dieses Beispiel verwendet die CDate-Funktion, um einen Ausdruck in Date zu konvertieren. Im Allgemeinen wird das Hartcodieren von Datums- und Uhrzeitangaben als Zeichenfolgen (wie in diesem Beispiel dargestellt) nicht empfohlen. Verwenden Sie stattdessen Datums- und Uhrzeitliterale, z. B. #2/12/1969# und #4:45:23 PM#.

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. 

Beispiel zur CDbl-Funktion

Dieses Beispiel verwendet die CDbl-Funktion, um einen Ausdruck in Double zu konvertieren.

Dim MyCurr, MyDouble 
MyCurr = CCur(234.456784) ' MyCurr is a Currency. 
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' Convert result to a Double. 

Beispiel zur CDec-Funktion

Dieses Beispiel verwendet die CDec -Funktion, um einen numerischen Wert in Decimal zu konvertieren.

Dim MyDecimal, MyCurr 
MyCurr = 10000000.0587 ' MyCurr is a Currency. 
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal. 

Beispiel zur CInt-Funktion

Dieses Beispiel verwendet die CInt-Funktion, um einen numerischen Wert in Integer zu konvertieren.

Dim MyDouble, MyInt 
MyDouble = 2345.5678 ' MyDouble is a Double. 
MyInt = CInt(MyDouble) ' MyInt contains 2346. 

Beispiel zur CLng-Funktion

Dieses Beispiel verwendet die CLng-Funktion, um einen numerischen Wert in Long zu konvertieren.

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. 

Beispiel zur CSng-Funktion

Dieses Beispiel verwendet die CSng-Funktion, um einen numerischen Wert in Single zu konvertieren.

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. 

Beispiel zur CStr-Funktion

Dieses Beispiel verwendet die CStr -Funktion, um einen numerischen Wert in String zu konvertieren.

Dim MyDouble, MyString 
MyDouble = 437.324 ' MyDouble is a Double. 
MyString = CStr(MyDouble) ' MyString contains "437.324". 


Beispiel zur CVar-Funktion

Dieses Beispiel verwendet die CVar-Funktion, um einen Ausdruck in Variant zu konvertieren.

Dim MyInt, MyVar 
MyInt = 4534 ' MyInt is an Integer. 
MyVar = CVar(MyInt & 000) ' MyVar contains the string 
 ' 4534000. 

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.