IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - Datentypen und Konvertierung in VB



Datentypen und Konvertierung in VB

Dieser Artikel erklärt die Grundlagen der in der Programmierung mit Visual Basic sehr wichtigen Datentypen und die Konvertierung von Variablen in andere Datentypen.


Autor: Tobias Surmann (incsoft)
Datum: 31-03-2003, 18:43:06
Referenzen: keine
Schwierigkeit: Anfänger
Ansichten: 32546x
Rating: 7.5 (2x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Für viele Programmiereinsteiger ist die Bedeutung des Datentyps am Anfang mehr als undurchsichtig, zumal es schwer ist, den Grund für seine Notwendigkeit zu erkennen. Warum gibt es Datentypen? Man kann doch jede Variable auch ohne Datentyp deklarieren, z.B.:

Dim Zahl
Datentypen sind eine Hilfestellung für den Computer. Je mehr VBA über eine Variable weiß, desto optimaler kann es das Programm umsetzen. Aus diesem Grund sind Variant-Variablen zwar bequem, aber nicht optimal. Man gibt einer Variablen daher einen Datentyp um den Verwendungszweck der Variablen festzulegen. Eine Integer-Variable kann nur ganze Zahlen enthalten, eine String-Variable kann nur Zeichenketten (=Text) aufnehmen. Indem man dies bei der Deklaration festlegt, beauftragt man VBA damit, auf Unstimmigkeiten zu achten und eine Fehlermeldung auszugeben, wenn eine Variable einen Datenwert erhalten sollte, der nicht zu ihr passt.



Die folgende Tabelle gibt eine Übersicht über die wichtigsten VBA-Datentypen.

Datentyp TK* Speicherbedarf Wertebereich
Boolean 2 Bytes 0 (False) oder -1 (True).
Integer % 4 Bytes Ganze Zahlen von -32768 bis +32767.
Double # 8 Bytes -1,797693 * 10-324 bis +1,797693 * 10324.
String $ 10 Bytes + Länge der Zeichenkette 0 bis ca. 2 Milliarden Zeichen
Variant 22 Bytes + Länge der Zeichenkette Jeder numerische Wert im Bereich Double und jeder String.


* TK = Typenkennzeichen für verkürzte Deklaration: Dim intZahl% anstatt Dim intZahl As Integer

Die Deklaration einer Variablen geschieht nach folgender Syntax:

Dim Variablenname As Datentyp
Beispiel:

Dim intZahl As Integer   'Deklaration der Variablen "intZahl"

intZahl = 30000 'OK
intZahl = "Text" 'Fehler!
IntZahl = "30000" 'Fehler!
Konvertierung

VBA bietet eine Fülle von Umwandlungsfunktionen für Datentypen an. Die meisten dieser Funktionen werden allerdings nur relativ selten benötigt, da VBA intern viele Konvertierungen selbstständig durchführt.

In der folgenden Tabelle sind die Umwandlungsfunktionen für die verschiedenen Datentypen zusammengefasst.

Funktion Rückgabetyp
CBool Boolean
CInt Integer
CDbl Double
CStr String
CVar Variant


Alle Umwandlungsfunktionen erwarten einen Parameter Expression, der den zu konvertierenden Ausdruck beinhaltet.

Beispiel:

Im Beispielprogramm sollen die Jahre bis zum 100. Geburtstag des Benutzers errechnet werden. Zur Berechnung benötigen wir lediglich das Alter des Anwenders, welches über eine InputBox ermittelt wird.



Um in die VBA-Entwicklungsumgebung zu gelangen, kann die Tastenkombination ALT + F11 benutzt werden. Dort fügen wir eine neue UserForm ein, indem wir auf Einfügen und dann auf UserForm klicken. Auf das Formular platzieren wir nun einen CommandButton, dem wir über das Eigenschaftsfenster die Beschriftung "Jahre bis zum 100. Geburtstag berechnen" zuweisen (Caption-Eigenschaft). Durch Doppelklick auf die Schaltfläche gelangen wir in die Ereignis-Prozedur CommandButton1_Click(). Hier wird der folgende Quelltext eingefügt:

Private Sub CommandButton1_Click()
Dim intAlter As Integer 'Deklaration als Ganzzahl Dim intJahre As Integer

intAlter = CInt(InputBox("Wie alt bist du?", "EINGABE", "18"))
'Konvertierung der Rückgabe von InputBox in einen Integer

intJahre = 100 - intAlter 'Berechnung der Jahre

MsgBox "In " + CStr(intJahre) + " Jahren wirst du 100 Jahre alt!", vbInformation, "ERGEBNIS"
'Da VBA nicht in der Lage ist, eine Addition einer Zahl und eines Texts
'durchzuführen, muss intJahre vorher in einen String (=Text) umgewandelt werden.
End Sub


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04505
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06241
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1140
Comments: 0