Sie werden bei der Programmierung häufig den Datentyp einer Variablen konvertieren müssen. Dies ist zum Beispiel immer dann der Fall, wenn Sie Daten für die Steuerelemente eines Dialogfelds aufbereiten müssen. Textfelder oder Comboboxen können beispielsweise nur Strings aufnehmen. Deshalb hat die Konvertierung in den Datentyp String die größte Bedeutung. Daneben sind aber auch noch weitere Arten der Konvertierung von Bedeutung. Die folgenden Tabelle listet alle in Visual Basic for Applications zur Verfügung stehenden Funktionen für die Datentypkonvertierung auf.
Funktion Konvertierung in den Datentyp
CBool Boolean
CByte Byte
CCur Currency
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
CSng Single
CVar Variant
CStr String
Das folgende Beispiel zeigt die Anwendung der Konvertierungsfunktion CByte.
Dim VarDouble As Double
Dim VarByte As Byte
VarDouble = 47.68
VarByte = CByte(VarDouble) ‚ VarByte enthält 48.
Datentypkonvertierung von Double nach Byte mit Hilfe der Funktion CByte.
Im obigen Beispiel wird der Variablen VarDouble der Datentyp double und der Variablen VarByte der Datentyp Byte zugewiesen. Mit Hilfe der Konvertierungsfunktion CByte wird der VariablenVarByte der Inhalt der Variablen VarDouble zugewiesen. Dabei wird der Wert von VarDouble nach oben aufgerundet.
Funktionen
Häufig reicht es nicht aus, nur Parameter an Prozeduren zu übergeben, man benötigt zum Beispiel das Ergebnis einer Berechnung. Dazu werden in Visual Basic for Applications die sogenannten Funktionen eingesetzt. Funktionen erlauben die Rückgabe von Ergebnissen an die aufrufende Prozedur. Die allgemeine Syntax sieht so aus:
Function <Prozedurname> ([Parameterliste As Datentyp]) As Datentyp
VBABefehle
End Function
Im folgenden Beispiel wird der Funktion BerechneMwst der aktuelle Mehrwertsteuersatz und der Betrag – auf den die Mehrwertsteuer aufgeschlagen werden soll – übergeben.
Function BerechneMwst(Mwst As Double, Betrag As Double) As Double
‚
‚ Berechnet den Betrag der Mehrwertsteuer
‚
Dim Ergebnis As Double
Ergebnis = Betrag * Mwst / 100
BerechneMwst = Ergebnis
End Function
Sub EingabeBetrag()
‚
‚ Fragt nach einem Betrag, dessen
‚ Mehrwertsteuer berechnet werden soll.
‚
Dim Eingabe As String
Dim Wert As Double
Dim BetragMwst As Double
Beep
Eingabe = InputBox(„Geben Sie einen Betrag ein!“)
Wert = Val(Eingabe)
BetragMwst = BerechneMwst(16, Wert)
MsgBox „Betrag: “ & Str(Wert) & “ Mehrwertsteuer: “ & Str(BetragMwst), vbInformation, „Mehrwertsteuer“
End Sub
Programm zur Berechnung der Mehrwertsteuer.
Die Funktion BerechneMwst ermittelt anhand der übergebenen Parameter den Betrag der Mehrwertsteuer und speichert das Resultat der Berechnung in der Variablen Ergebnis. Damit die aufrufende Prozedur nun auch von dem Ergebnis erfährt, muß es entsprechend zurückgegeben werden. Dazu wird die Variable Ergebnis dem Funktionsnamen übergeben. Der Funktionsname ist eigentlich auch nichts anderes als eine Variable, die den gleichen Datentyp wie Ergebnis besitzt. Auf diese Weise erfährt die Prozedur EingabeBetrag von dem Ergebnis der Berechnung.
In der Prozedur EingabeBetrag müssen Sie zuerst einen Betrag eingeben, dessen Mehrwertsteuer berechnet werden soll. Da die InputBox nur Texte zurückgeben kann, muß die Variable Eingabeumgewandelt werden. Dies wird durch den Befehl Val(Eingabe) bewerkstelligt. Das Ergebnis der Umwandlung ist der Zahlenwert des eingegebenen Betrags.
Danach wird die Prozedur BerechneMwst mit dem aktuellen Mehrwertsteuersatz und dem von Ihnen angegebenen Betrag aufgerufen. Als Ergebnis erhalten Sie den Betrag der Mehrwertsteuer. Zum Schluß wird das Ergebnis der Berechnung und der eingegebene Betrag noch in einem Nachrichtenfenster ausgegeben.
Hier fällt auf, daß die Variablen BetragMwst und Wert, die ja vom Datentyp Double sind, in einen String umgewandelt werden. Das geschieht über den Befehl str. Dieser gehört genauso wie der Befehl Val zum Standardsprachumfang von Visual Basic for Applications. Man spricht in diesem Zusammenhang auch von einer Typumwandlung, da der Inhalt der Variablen einer anderen Variablen mit einem anderen Datentyp zugewiesen wird.