Klassische Typwandlungen in VBA
Klassische Typwandlungen
In klassischen BASIC -Dialekten wurden »INT«, »STR$« und »VAL« zur Typwandlung verwendet. Auch in VBA gibt es noch entsprechende Funktionen. Die Ergebnisse dieser klassischen Funktionen hängen nie von den Umgebungseinstellungen (Windows -Einstellungen) ab.
Die modernen Typwandlungen unterscheiden sich in einigen Punkten von klassischen Typwandlungen traditioneller BASIC -Versionen.
»VBA.Conversion.Int«
Wie die schon vorgestellte Funktion »VBA.Conversion.CInt«, so wandelt auch »VBA.Conversion.Int« in den Datentyp »Integer«. Einige Unterschiede sind:
- Der Ergebnistyp von »VBA.Conversion.Int« ist weiterhin »Double« (wenn das Argument den Typ »Double« hat), der Ergebnistyp von »VBA.Conversion.CInt« ist hingegen »Integer«. Der Typ von »VBA.Conversion.Int« ist Integer, wenn der Argumentwert den Typ »Integer«, hat und »Double«, wenn der Argumentwert den Typ »Double« hat.
- »VBA.Conversion.Int« rundet nicht, sondern schneidet die Nachkommastellen einfach ab, während »VBA.Conversion.CInt« rundet.
- Direktbereich
? VBA.Conversion.Int( VBA.Math.Rnd * 2 )
1
- Direktbereich
? VBA.Information.TypeName( VBA.Conversion.Int( 0.6 ))
Double
- Direktbereich
? VBA.Information.TypeName( VBA.Conversion.Int( 4 ))
Integer
- Direktbereich
? VBA.Conversion.Int( 0.6 )
0
- Direktbereich
? VBA.Conversion.Int( 0.5 )
0
- Direktbereich
? VBA.Conversion.Int( 1.7 )
1
- Direktbereich
? VBA.Information.Typename( VBA.Conversion.Int( 30000 ))
Integer
- Direktbereich
? VBA.Information.Typename( VBA.Conversion.Int( 60000 ))
Long
- Direktbereich
? VBA.Information.Typename( VBA.Conversion.Int( 60000.0 ))
Double
»VBA.Conversion.Val«
Diese Funktion gibt den Wert des in einer Zeichenfolge enthaltenen Numerales zurück.
»Val( "22 abc")« ergibt beispielsweise »22« (vom Typ »Double«).
Diese Funktion interpretiert nur den Punkt als Dezimaltrennzeichen. Für Anwendungen unter Berücksichtigung der Regionaleinstellungen sollte stattdessen »VBA.Conversion.CInt« oder »VBA.Conversion.CDbl« verwendet werden.
»VBA.Conversion.Str«
Diese Funktion gibt den Wert einer Zahl als Zeichenfolge zurück.