VBA – Der String-Datentyp (Dim Variable)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 19, 2022

String-Variablen-Typ

Der Datentyp String ist einer der am häufigsten verwendeten Datentypen in VBA. Er speichert „Zeichenketten“ aus Text.

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

Dim strName as String

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

strName = "Fred Smith"

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

Sub strBeispiel()
'Die Zeichenkette deklarieren
   Dim strName as String
'Die Zeichenkette auffüllen
    strName = "Fred Smith"
'Die Meldungsbox anzeigen
   MsgBox strName
End Sub

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

vba string meldungsbox

Feste String-Variable

Es gibt eigentlich 2 Arten von String-Variablen, und zwar feste und variable.

Bei der „variablen“ String-Variablen kann die Länge der Zeichenkette (wie im vorherigen Beispiel gezeigt) beliebig sein. Dies ist am häufigsten der Fall.

Die „feste“ String-Variable definiert die Größe der Zeichenkette. Eine feste Zeichenkette kann bis zu 65.400 Zeichen enthalten.

Dim strName as string *20

Wenn Sie eine feste Variable definieren, wird die Anzahl der Zeichen in der Variable fixiert, auch wenn Sie weniger Zeichen verwenden.

Beachten Sie die Leerzeichen in der Grafik unten. Die Variable hat Platzhalter für den Rest der Zeichen in der Zeichenkette, da „Fred Smith“  aus weniger als 20 Zeichen besteht.

vba feste string variable

Wenn Sie jedoch eine Zeichenkette ohne Angabe der Länge deklariert haben, enthält die Zeichenkette nur so viele Zeichen, wie ihr übergeben werden.

vba string variable

 

String-Variable auf Modul- oder globaler Ebene deklarieren

Im vorherigen Beispiel haben Sie die Variable String innerhalb einer Prozedur deklariert. Variablen, die in einer Prozedur deklariert wurden, können nur innerhalb dieser verwendet werden.

vba string variable prozedurebene

Stattdessen können Sie String-Variablen auf der Modul- oder globalen Ebene deklarieren.

Modul-Ebene

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

vba string 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 String-Variable in Ihrem gesamten VBA-Projekt verwendet werden kann.

Public strName as String

vba globale string variable

Wenn Sie die String-Variable auf Modulebene deklarieren und in einem anderen Modul verwenden, würde ein Fehler auftreten.

string variable modulebene kompilierfehler

Wenn Sie jedoch das Schlüsselwort Public verwenden, um die String-Variable zu deklarieren, würde der Fehler nicht auftreten und die Prozedur würde einwandfrei ausgeführt.

Als String gespeicherte Werte umwandeln

Es kann vorkommen, dass Sie in Excel Werte, die als Text gespeichert sind, haben, z. B. wenn Sie eine CSV-Datei, die Text anstelle von Zahlen enthielt, importiert haben.

Beachten Sie, dass der Wert in A1 linksbündig ist, was auf einen Textwert hinweist.

string variable zahl als text

Sie können eine VBA-Funktion verwenden, um diese Zahlen in Text umzuwandeln.

Sub WertUmwandeln()
'Die Zeichenkette auffüllen
    strMenge = Range("A1")
'Die Double-Variable mit der Zeichenkette belegen
    dblMenge = strMenge
'Füllt den Bereich mit der Zahl
    Range("A1") = dblMenge
End Sub

Wenn Sie den Code ausführen, wird die Zahl nach rechts verschoben, was ein Zeichen dafür ist, dass sie jetzt als Zahl gespeichert ist.

string variable in zahl umwandeln

Dies ist besonders nützlich, wenn Sie einen großen Zellenbereich in einer Schleife durchlaufen.

vba string variable zellenbereich

Sub WertUmwandeln()
    Dim strMenge As String, dblMenge As Double
    Dim zeile As Integer, i As Integer
'Die zu konvertierenden Zeilen zählen
    zeile = Range("A1", Range("A1").End(xlDown)).Rows.Count
'Alle Zellen durchlaufen und jede einzelne in eine Zahl umwandeln
    For i = 0 To zeile - 1
'Die Zeichenkette auffüllen
        strMenge = Range("A1").Offset(i, 0)
'Die Double-Variable mit der Zeichenkette belegen
        dblMenge = strMenge
'Den Bereich mit der Zahl füllen
        Range("A1").Offset(i, 0) = dblMenge
    Next i
End Sub

Das Ergebnis besteht darin, dass alle Zellen dann in Zahlen umgewandelt werden.

string variable zellenbereich umwandeln

 

Als Werte gespeicherte Zeichenkette umwandeln

In ähnlicher Weise kann es Werte geben, die Sie von einer Zeichenkette in einen Zahlenwert umwandeln müssen, zum Beispiel, wenn Sie eine führende Null bei einer Telefonnummer benötigen.

string variable zahl in text umwandeln

Sub ZeichenketteUmwandeln()
    Dim strTelefonnr As String, dblTelefonnr As Double
    Dim zeile As Integer, i As Integer
'Die zu konvertierenden Zeilen zählen
    zeile = Range("A1", Range("A1").End(xlDown)).Rows.Count
'Zellen durchlaufen und jede in eine Zahl umwandeln
    For i = 0 To zeile - 1
'Die Zeichenfolge auffüllen
        dblTelefonnr = Range("A1").Offset(i, 0)
'Die Double-Variable mit der Zeichenkette belegen
        strTelefonnr = "'0" & dblTelefonnr
'Den Bereich mit der Zahl füllen
        Range("A1").Offset(i, 0) = strTelefonnr
    Next i
End Sub

string variable zahl in text umwandeln ergebnis

Beachten Sie, dass Sie die Textzeichenfolge mit einem Hochkomma (‚) vor der Null beginnen müssen, um Excel anzuweisen, den Wert als Zeichenfolge einzugeben.

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