VBA – Datentyp Double (Dim Variable)
In this Article
Der Variablentyp Double
Der VBA-Datentyp Double wird zum Speichern von Zahlen verwendet, die Dezimalstellen benötigen. Er kann negative Werte von -1,79769313486231E308 bis -4,94065645841247E-324 und positive Werte von 4,94065645841247E-324 bis 1,79769313486232E308 speichern.
Um eine Double-Variable zu deklarieren, verwenden Sie die Dim-Anweisung (kurz für Dimension):
Dim dblA as Double
Um dann einer Variablen einen Wert zuzuweisen, verwenden Sie einfach das Gleichheitszeichen:
dlbA = 3658.25
Wenn Sie dies in eine Prozedur einbauen, sieht es so aus:
Sub dblBeispiel()
'Die Double-Variable deklarieren
Dim dblA as Double
'Die Double-Variable belegen
dblA = 3658.25
'Die Meldungsbox anzeigen
MsgBox dblA
End Sub
Wenn Sie den obigen Code ausführen, wird die folgende Meldungsbox angezeigt.
Der Datentyp Single
Der Datentyp Single ist nur eine kürzere Version des Datentyps Double. Aus diesem Grund kann er sich auf die Rundung auswirken, wenn er in einer Prozedur verwendet wird, da der Single-Datentyp auf 4 Dezimalstellen rundet, während der Double-Datentyp auf 12 Dezimalstellen rundet. Wenn Sie den Datentyp Double nicht benötigen, können Sie den Datentyp Single verwenden.
Die Datentypen Int oder Long
Wenn Sie keine Nachkommastellen benötigen, können Sie entweder den Datentyp Int oder den Datentyp Long verwenden.
Dim intA as Integer
Dim lngB as Long
Double-Variable auf Modul- oder globaler Ebene deklarieren
In den vorherigen Beispielen haben wir die Double-Variable innerhalb einer Prozedur deklariert. In einer Prozedur deklarierte Variablen können nur innerhalb dieser Prozedur verwendet werden.
Stattdessen können Sie Double-Variablen auf Modul- oder globaler Ebene deklarieren.
Modulebene
Variablen auf Modulebene werden am Anfang von Codemodulen mit der Dim-Anweisung deklariert.
Diese Variablen können mit 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 Double-Variable im gesamten VBA-Projekt verwendet werden kann.
Public DblA as Double
Wenn Sie die Double-Variable auf Modulebene deklarieren und dann versuchen, sie in einem anderen Modul zu verwenden, tritt ein Fehler auf.
Hätten Sie jedoch das Schlüsselwort Public verwendet, um die Double-Variable zu deklarieren, würde der Fehler nicht auftreten und die Prozedur würde einwandfrei ausgeführt werden.
Gespeicherte Double-Werte als String formatieren
Es kann vorkommen, dass Sie einen Double-Datentyp in eine Zeichenkette formatieren möchten. Zum Beispiel, wenn Sie ein Währungssymbol anzeigen und die Zahl auf zwei Dezimalstellen runden möchten.
Um dies zu erreichen, verwenden Sie die Funktion Format.
Die folgende Prozedur:
Sub TestDoubleInWaehrungsZeichkette() 'Die String-Variable deklarieren Dim strGeldbetrag As String 'Die Double-Variable deklarieren und mit Wert belegen Dim dblWert As Double
dblWert = 44055.256 'Den Double-Wert in einen String mit einem Währungssymbol und 2 Nachkommastellen strGeldbetrag = Format(dblWert , "$#,##0.00") 'Das Ergebnis anzeigen MsgBox strGeldbetrag End Sub
würde dieses Ergebnis zurückgeben:
Auf ähnliche Weise können Sie eine Zahl als formatierte Telefonnummer anzeigen lassen.
Diese Prozedur:
Sub TestDoubleInTelefonnummer()
'Die String-Variable deklarieren
Dim strTelefonnummer As String
'Die Double-Variable deklarieren und mit Wert belegen
Dim dblWert As Double
dblWert = 555968541
'Den Double-Wert in eine formatierte Telefonnummer
strTelefonnummer = Format(dblWert, "(000)-000 0000")
'Das Ergebnis anzeigen
MsgBox Telefonnummer
End Sub
würde dieses Ergebnis zurückgeben: