Wie Du in VBA ganz einfach Variablen deklarieren und einsetzen kannst

Variablen werden in VBA als Platzhalter verwendet. Sie können im Laufe einer Prozedur über eine Zuweisung durch Zeichenfolgen, Werte und Objekte ersetzt werden.

Um Variablen verwenden zu können, musst Du sie zunächst deklarieren. Dabei weist Du Ihnen einen Variablentyp zu, dies machst Du in der Regel mit einer Dim-Anweisung.

Für die Deklarierung stehen Dir folgende Datentypen zur Verfügung:

Datentypen

Wird eine Variable nicht mit der richtigen Art deklariert, nimmt VBA immer den Typ Variant an. Variant jedoch benötigt den meisten Speicherplatz.

Gültigkeit der Variablen

Die Gültigkeit und Lebensdauer der Werte der Variablen legst Du durch den Ort und die Art ihrer Deklaration fest. Im Wesentlichen sind drei Arten einer Deklarationb möglich:

– Deklaration innerhalb einer Prozedur: Die Variable ist ausschließlich für diese Prozedur gültig und ist aus anderen Prozeduren heraus nicht ansprechbar.

– Deklaration im Kopf des Moduls: Die Variable gilt für alle Prozeduren dieses Moduls, eine Weitergabe ist nicht notwendig.

– Deklaration im Kopf des Moduls als Public: Die Variable gilt für alle Prozeduren der Arbeitsmappe, soweit das Modul nicht als Private deklariert ist.

Modul anlegen und umbenennen

Ich will mich in diesem Beitrag auf die Deklaration innerhalb der Prozedur beschränken. Wie ist nun vorzugehen? Gehe zunächst wieder mit Alt + F11 in die VBA-Ebene und lege über Einfügen / Modul ein solches an, falls noch kein Modul vorhanden ist. Das erste Modul wird standardmäßig den Namen „Modul1“ haben. Um den Namen zu ändern, wenn Du es so möchtest, rufst Du Ansicht / Eigenschaftenfenster auf. Klicke einmal auf Modul1 und ändere den Namen im Feld rechts von (Name). Auch hier solltest Du Namenskonventionen beachten. Standardmodule erhalten das Kürzel „mdl“. Nenne also Dein Modul z.B. „mdlVar“.

Beispiel 1

In einem ersten Makro willst Du eine Variable vom Typ Integer deklarieren, ihr das Ergebnis aus der Multiplikation von 25 und 81 zuweisen und den Wert der Variablen über eine MsgBox ausgeben. Im Code sind, beginnend mit “ ‚ “ Kommentare eingefügt. Diese haben keine Auswirkung auf den Ablauf der Prozedur.

Schreibe nun im Modul „mdlVar“ folgenden Code:

Sub VarDekla1()

Dim intWert As Integer     ‚ eine Variable vom Typ Integer wird deklariert

inWert=25*81     ‚ Zuweisung einer Berechnung zur Variablen

MsgBox („Der Variablenwert beträgt: „&intWert)     ‚ Ausgabe des Wertes der Variablen

End Sub

Verlasse die VBA-Ebene mit Alt + Q. Lege dann über Entwicklertools / Einfügen wieder eine Schaltfläche an, weise das Makro zu und klicke auf die Schaltfläche.

Die MsgBox gibt das Ergebnis 2025 aus, das ist richtig.

Beispiel 2

Im ersten Beispiel hast Du der Variablen harte Werte zur Berechnung zugewiesen. Jetzt sollen beide Multiplikatoren auch variabel werden. Dazu sind zwei weitere Variablen zu deklarieren. Die (variablen) Werte für die Variablen suchst Du z.B. über Drehfelder.

VarDekla1

Das Makro schreibst Du jetzt bitte so:

Sub VarDekla2()

Dim intWert As Integer     ‚ Variablen deklarieren

Dim intZahl1 As Integer

Dim intZahl2 As Integer

intZahl1=Range(„G3“).Value     ‚ Werte zuweisen

inZahl2=Range(„G9“).Value

intWert=intZahl1*intZahl2

MsgBox („Der Variablenwert beträgt: „&intWert)     ‚ Variablenwert ausgeben

End Sub

Verlasse die Umgebung mit Alt + Q, lege eine Schaltfläche an und klicke sie an. Wenn intZahl1 gleich 25 und intZahl2 gleich 81 sind, gibt die MsgBox wieder 2025 aus.

Verändere nun mal mit den Drehfeldern inZahl1 auf 19 und intZahl2 auf 82. Klicke die Schaltfläche. Die MsgBox gibt den Wert 1558 aus, das ist richtig.

Ebenso können die Werte für intZahl1 und intZahl2 Ergebnisse aus Berechnungen oder Importe aus Anwenderprogrammen sein. Achte darauf, dass diese Werte in Zellen abgelegt sind, damit Du eine Zuweisung vornehmen kannst.

Beispiel 3

Ich komme nochmal auf die Makros zur morgendlichen Begrüßung zurück. Als Nutzer kannst Du Dich z.B. wieder über eine DropDown-Liste anmelden.

VarDekla2

Im Beispiel hat sich Susi angemeldet. Susi will als angemeldete Benutzerin begrüßt werden und gleichzeitig das aktuelle Datum erfahren.

Das Makro kannst Du in der VBA-Umgebung jetzt so schreiben:

Sub VarDekla3()

Dim strNutzer As String

Dim datTag As Date

strNutzer=Range(„B15“).Value

datTag=Date()

MsgBox („Guten Morgen „& strNutzer & „“ Heute ist der “ & „“ & datTag & „“ & „.“)

End Sub

Die MsgBox gibt z.B. am 12.05.2015 aus: „Guten Morgen Susi! Heute ist der 12.05.2015.“

Den Benutzernamen kannst Du auch vom Computer abfragen. Dazu verwendest Du die Funktion „Environ“. Das Makro würde dann so aussehen:

Sub VarDekla4()

Dim strNutzer As String

Dim datTag As Date

strNutzer=Environ(„UserName“)

datTag=Date()

MsgBox („Guten Morgen “ & strNutzer & „! Heute ist der “ & „“ & datTag & „“ & „.“)

End Sub

Wenn Dein UserName „Susi“ ist, gibt die MsgBox am 12.05.2015 „Guten Morgen Susi! Heute ist der 12.05.2015.“ aus.

Statt die Ausgabe über eine MsgBox vorzunehmen, ist es auch hier möglich, den Begrüßungstext in eine Zelle zu schreiben.

Sub VarDekla5()

Dim strNutzer As String

Dim datTag As Date

strNutzer=Range(„B15“).Value

datTag=Date()

Range(„A21″)=““Guten Morgen “ & strNutzer & „! Heute ist der “ & „“ & datTag & „“ & „.“

End Sub

Wenn Dein UserName „Susi“ ist, gibt die MsgBox am 12.05.2015 „Guten Morgen Susi! Heute ist der 12.05.2015.“ aus.

Versuche doch selbst einmal, Variablen zu deklarieren und sie in kleinen (oder auch großen) Makros zu verwenden. Schreibe Deine Erfahrungen damit bzw. Fragen, die offen geblieben sind, in einen Kommentar zu diesem Artikel.

Hier noch eine ergänzende Datei. Variablendeklaration

Advertisements

Autor: Gerhard Pundt

Auf meiner Site https://clevercalcul.wordpress.com geht es um die Tabellenkalkulation mit Excel. Es wird über Funktionen, Diagramme, Basiswissen u.a.m. geschrieben.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s