VBA – Int / Ganzzahl-Datentyp (Dim Variable)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 7, 2023

Ganzzahl-Variablentyp (Int)

Der VBA-Datentyp Int wird zum Speichern ganzer Zahlen (ohne Dezimalwerte) verwendet. Wie wir jedoch weiter unten sehen werden, müssen die Integer-Werte in den Bereich -32768 bis 32768 fallen.

Um eine Int-Variable zu deklarieren, verwenden Sie die Dim-Anweisung (kurz für Dimension):

Dim intA as Integer

Um dann einer Variablen einen Wert zuzuweisen, verwenden Sie einfach das Gleichheitszeichen:

intA = 30000

Wenn Sie dies in eine Prozedur einbauen, sieht es so aus:

Sub IntBeispiel()
'Integer-Variable deklarieren
 Dim intA as Integer
'Integer-Variable mit Wert belegen
 intA = 30000
'Meldungsbox anzeigen
 MsgBox intA
End Sub

Wenn Sie den obigen Code ausführen, wird das folgende Meldungsfenster angezeigt.

VBA Interger Variable Meldungsbox

Der Variablentyp Long

Wie bereits erwähnt, können Int-Variablen nur Werte zwischen -32768 und 32768 speichern. Wenn Sie versuchen, einer Int-Variablen einen Wert außerhalb dieses Bereichs zuzuweisen, erhalten Sie eine Fehlermeldung:

VBA Interger Variable Laufzeitfehler

Wenn Sie auf „Debuggen“ klicken, bricht der Code an der Zeile „Integer-Variable mit Wert belegen“ ab, da eine Integer-Variable keine Zahl mit einem Wert von 50000 speichern kann.

VBA Interger Variable Fehlerzeile

Stattdessen können Sie eine Variable mit dem Datentyp Long deklarieren:

Dim longA as Long

Long-Variablen können sehr lange Datentypen speichern (-2.147.483.648 bis 2.147.483.648).

Warum sollten Sie Int-Variablen anstelle von Long-Variablen verwenden?

Long-Variablen benötigen mehr Speicherplatz. Vor Jahren war der Speicherbedarf ein großes Problem beim Schreiben von Code. Heute ist die Computertechnologie jedoch viel besser und es ist zweifelhaft, dass Sie beim Schreiben von VBA-Code auf Speicherprobleme stoßen werden, die durch lange Variablen verursacht werden.

Wir empfehlen, immer Long-Variablen anstelle von Int-Variablen zu verwenden. Im weiteren Verlauf dieses Tutorials werden wir uns mit Int-Variablen beschäftigen, aber denken Sie daran, dass Sie stattdessen auch den Variablentyp Long verwenden können.

Dezimalwerte und Integer-Datentypen

Integer-Variablen können keine Dezimalwerte speichern. Wenn Sie eine Dezimalzahl an eine Ganzzahl übergeben, wird diese gerundet, um die Dezimalstellen zu entfernen.

Wenn Sie also die folgende Prozedur ausführen:

Sub Int_Beispiel_B() 
'Integer-Variable deklarieren
 Dim intA as Integer 
'Integer-Variable mit Wert belegen 
 intA = 3524.12
'Meldungsbox anzeigen 
 MsgBox intA 
End Sub

werden Sie das folgende Ergebnis erhalten (Abrundung):

Dezimalwerte in Interger Variablen Abrundung

Aber dieser Code unten:

Sub IntBeispielB()
 'Integer-Variable deklarieren 
 Dim intA as Integer 
'Integer-Variable mit Wert belegen
 intA = 3524.52 
'Meldungsbox anzeigen 
 MsgBox intA 
End Sub

Würde das folgende Meldungsfeld zurückgeben (Aufrundung):

Dezimalwerte in Interger Variablen Aufrundung

Dezimal- bzw. Double-Datentyp

Wenn Sie eine Dezimalstelle speichern möchten, müssen Sie eine Variable deklarieren, die Dezimalstellen zulässt. Es gibt 3 Datentypen, die Sie verwenden können, und zwar Single, Double oder Currency.

Dim sngPreis as Single
Dim dblPreis as Double
Dim curPreis as Currency

Der Datentyp Single rundet den Dezimalpunkt etwas anders als die Datentypen Double und Currency, daher ist es aus Genauigkeitsgründen besser, Double anstelle von Single zu verwenden. Ein Double kann bis zu 12 Dezimalstellen haben, während Currency und Single beide bis zu 4 Dezimalstellen haben können.

Datentypen Single Double Currency Vergleich

Für weitere Informationen über diese Datentypen können Sie hier nachsehen.

Integer-Variablen auf Modul- oder globaler Ebene deklarieren

In den vorherigen Beispielen haben wir die Integer-Variable innerhalb einer Prozedur deklariert. Variablen, die mit einer Prozedur deklariert werden, können nur innerhalb dieser Prozedur verwendet werden.

VBA Doube Variable Prozedurebene

Stattdessen können Sie Integer-Variablen auf Modul- oder globaler Ebene deklarieren.

Modulebene

Variablen auf Modulebene werden am Anfang von Codemodulen mit der Dim-Anweisung deklariert.

VBA Integer Variable Modulebene

Diese Variablen können in jeder Prozedur in diesem Codemodul verwendet werden.

Globale Ebene

Variablen auf globaler Ebene werden ebenfalls am Anfang von Codemodulen deklariert. Anstelle der Dim-Anweisung verwenden Sie jedoch die Public-Anweisung, um anzugeben, dass die Integer-Variable in Ihrem gesamten VBA-Projekt verwendet werden kann.

Public IntA as Integer

VBA Integer Variable Globale Ebene

Wenn Sie die Ganzzahl auf Modulebene deklarieren und dann versuchen, sie in einem anderen Modul zu verwenden, tritt ein Fehler auf.

VBA Integer Variable Kompilierfehler

Hätten Sie jedoch das Public-Schlüsselwort zur Deklaration der Ganzzahl verwendet, würde der Fehler nicht auftreten und die Prozedur würde einwandfrei ausgeführt werden.

String in Integer konvertieren

Es kann vorkommen, dass Sie eine Zahl, die als String gespeichert ist, in einen Integer-Wert umwandeln müssen.

VBA String in Integer konvertieren

Im Direktfenster sehen Sie, dass der Integer-Wert rechtsbündig ausgerichtet ist und eine Zahl darstellt, während der String-Wert linksbündig ausgerichtet ist und einen Text darstellt.

Integer in String umwandeln

Umgekehrt können Sie einen Integer-Wert in eine Zeichenkette umwandeln.

VBA Ingeger in String konvertieren

Weitere Informationen über diese Datentypen finden Sie hier.

Als String gespeicherte Integer formatieren

Um als String gespeicherte Integer zu formatieren, verwenden Sie die Funktion Format.

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples