| Datentyp | Bytes | Wertebereich | |
| Boolean | 2 | 0 (False) und -1 (True) | |
| Byte | 1 | 0 bis 255 | |
| Integer | 2 | -32.768 bis 32.767 | |
| Long | 4 | -2.147.483.648 bis 2.147.483.647 | |
| Single | 4 | -3,402823 E 38 bis -1,401298 E -45 und 1,401298 E -45 bis 3,402823 E 38 | |
| Double | 8 | -1,79769313486232 E 308 bis -4,94065645841247 E -324 und 4,94065645841247 E -324 bis 1,79769313486232 E 308 | |
| Decimal | 12 | 28 Ziffernstellen | |
| Currency | 8 | -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 | |
| Date | 8 | 1.1.100 bis 31.12.9999 | |
| String (variable Länge) | 10 + Länge der Zeichenkette | 0 bis ca. 2 Milliarden | |
| String (feste Länge) | Länge der Zeichenkette | ca. 65.400 | |
| Variant | 16 | Jeder Wert im Bereich wie Double | |
| Variant (mit Zeichenkette) | 22 + Länge der Zeichenkette | ||
| Object | 4 | Referenz auf Objekt |
Variable sollten vor ihrer Verwendung deklariert werden. Wenn man ohne Variablendeklaration arbeitet, werden abweichend geschriebene Variable mit dem Wert "0" benutzt, was zu schwer aufzufindenden Fehlrechnungen führen kann.
Wenn der Codebereich mit "Option Explicit" beginnt, müssen Variable deklariert werden. Die Deklaration reserviert Speicherplatz für die Variable. Wenn Variable deklariert sind, werden Schreibfehler bei Variablennamen leicht erkannt und gemeldet. Zur Variablendeklaration gibt es mehrere Möglichkeiten, nicht alle seien hier angegeben:
Arrays oder Felder von Variablen werden wie folgt deklariert:
Dim FeldVariablenName [([[untereGrenze to] obereGrenze][,[untereGrenze to] obereGrenze]...][As [New] Datentyp]
Notwendige Anmerkungen:
für Spezialisten. Außer den vorhandenen Datentypen kann ein komplexer Datentyp (in Pascal "Record") vereinbart werden:
| Beschreibung | Beispiel |
| Typdeklaration: Type Name Variable 1 As Variablentyp End TypeVariable 2 As Variablentyp ... | Type Person Vorname As String End TypeNachname As String Geburtstag As Date |
| Variablendeklaration: Dim Variablenname As Name | Dim Mitglied As Person |
Ein normaler Zugriff wäre die Zuweisung 'Mitglied.Nachname = "Müller"'. Bei Verwendung einer With-Schleife könnte jeweils der Objektname "Mitglied" wegbleiben, die Zuweisung reduziert sich dann auf '.Nachname = "Müller"'. Die benutzerdefinierte Variable "Mitglied" gilt innerhalb der With-Schleife als vorgewählt.
Benutzerdefinierte Datentypen sind besonders bei Datenbankanwendungen nützlich.
Es gibt in Visual Basic die Möglichkeit, für Feldvariable den verwendbaren Platz nachträglich zu vergrößern bzw. ihn nach Erledigung ihrer Aufgabe auch wieder freizugeben. Man nennt sie dann eben "dynamisch".
Die Deklaration erfolgt diesmal in zwei Stufen:
mit Private-, Public- oder Dim-Anweisung. Die Argumentenliste bleibt leer.
Beispiel: Dim Werte(), Verbindungen().
Die Deklaration erfolgt für alle Arrays gleich, völlig unabhängig davon, wieviele Dimensionen sie haben sollen (erlaubt sind bis zu 60).
mit: ReDim [Preserve] VarName(Indizes) [As Typ].
Diese Dimensionierung kann wiederholt werden. Sie hat ohne das Schlüsselwort Preserve zur Folge, daß der Inhalt des gesamten Arrays gelöscht wird. Wenn es sich bei dem Array um mehr als einen Vektor handelt, erfährt der Rechner erst jetzt, wieviele Dimensionen es haben soll.
Die Anzahl der Dimensionen kann nachträglich nicht mehr verändert werden. Unter Erhaltung von Array-Inhalten, also bei ReDim Preserve VarName(...) kann nur noch die Größe der letzten Datenfelddimension verändert werden.
Aufrufbeispiel: ReDim Werte(250), Verbindungen(75,75,75)
des belegten Speicherplatzes erfolgt, indem ReDim mit einer Datenfeldgröße 0 aufgerufen wird.
Aufrufbeispiel: ReDim Werte(0), Verbindungen(0, 0, 0)
Ein Beispiel für die Verwendung dynamischer Feldvariabler bei Vektoren und Matrizen wird später anhand der Matrizeninversion gegeben.