öffentlich
öffentlich
Redaktion Druckversion

VBA für Einsteiger - MS Excel 2003 (3)

Variable und Zuweisung von Ausdrücken

Variable

Variablen nehmen je nach Typ verschiedene Informationen auf. Variablen sollten ausdrücklich (explizit) definiert werden. Anderenfalls verlieren Sie leicht den Überblick, Programmierfehler schleichen sich schnell ein und Speicherplatz wird vergeudet.

Im vorherigen Kapitel haben Sie gesehen, dass die Variable Eingabetext alleine schon durch die Zuweisung eines Wertes definiert wird. Verwenden Sie die Variable im weiteren Programmtext unter falsch geschriebenen Namen, so wird vom VBA-Editor automatisch eine neue Variable mit fehlerhaftem Namen angelegt.

Generell ist zu empfehlen, alle Variablen selbst explizit anzulegen. Die Anweisung Option Explicit zu Beginn eines jeden Moduls wacht über die Notwendigkeit dieser Definitionen.

Sorgen Sie dafür, dass diese Anweisung beim Anlegen eines neuen Moduls generell automatisch erscheint: Klicken Sie deshalb im VBA-Editor "Extras" - "Optionen..." auf der Registerseite Editor auf das Kontrollkästchen Variablendefinitionen erforderlich, so dass ein Häkchen angezeigt wird, "OK".

Generell "Option Explicit" einschalten

Fügen Sie zwei weitere Module ein und bezeichnen Sie diese öffentlich und zweites_Beispiel. Zu Beginn der Module wurde Option Explicit automatisch eingetragen. Diese Einstellung ist ab jetzt in Ihrem Excel permanent gültig.

Zum Definieren einer Variablen verwenden Sie das Schlüsselwort Dim, gefolgt vom selbst gewählten Variablennamen; wiederum gefolgt vom Schlüsselwort As und dem Typ, z.B.

Dim Text As String

Zur kurzen Erklärung in Metasprache:

Dim <variablenname> As <typ>

Das bedeutet Dim und As sind feste Schlüsselworte. Das Kleingeschriebene in <> stellt nur eine erklärende Metavariable dar, die beliebig nach bestimmten syntaktischen Regeln oder aus einer Auswahl von Schlüsselwörtern ersetzt wird, z.B.

Dim Mitarbeitergehalt As Currency ' Variable nimmt nur Werte für Währung auf

Dim Antwort1 As String ' Variable nimmt nur Text auf

Für Variablennamen (bzw. generell für Bezeichner) bitte nur Buchstaben und Zahlen und das Unterstreichungszeichen verwenden.

Bevor Sie einige Variablen anlegen, gewinnen Sie zunächst einen

Überblick über Variablentypen:

Der Variablentyp legt den Typ der aufzunehmenden Daten fest. Damit wird eindeutig, wofür diese Variable bestimmt ist und wie viel Speicherplatz für die Variable benötigt wird.

Typ Byte Eine Variable dieses Typs benötigt 1 Byte
Es können nur ganze Zahlen von 0 bis 255 gespeichert werden.
Beispiel:
Dim Zaehler As Byte
Zaehler = 128

Typ Boolean Eine Variable dieses Typs benötigt 2 Bytes
Die Variable nimmt nur zwei Wahrheitswerte an: True oder False
Beispiel:
Dim Schalter As Boolean
Schalter = True

Typ Integer Eine Variable dieses Typs benötigt 2 Bytes
Es können ganze Zahlen von -32768 bis 32767 gespeichert werden.
Beispiel:
Dim Ganz As Integer
Ganz = -32768

Typ Long Eine Variable dieses Typs benötigt 4 Bytes
Dieser Typ nimmt ganze Zahlen von -2147483648 bis 2147483647 auf.
Beispiel:
Dim grosse_Zahl As Long
grosse_Zahl = 2100000001

Single Eine Variable dieses Typs benötigt 4 Bytes
Dieser Typ nimmt ganze Zahlen von -3,402823E38 bis -1,401298E-45
und 1,401298E-45 bis 3,402823E38 (E steht für 10 hoch)
Beispiel:
Dim Steuersatz As Single
Steuersatz = 0.16' oder 1.6E-1

Double Eine Variable dieses Typs benötigt 8 Bytes
-1,79769313486232E308 bis -4,94065645841247E-324
4,94065645841247E-324 bis 1,79769313486232E308. (E steht für 10 hoch)
Beispiel:
Dim Messwert As Double
Messwert = 123.456001799' oder 1.23456001799E2

Currency Dieser Variablentyp nimmt Zahlen für Währung auf und benötigt 8 Bytes
-922.337.203.685.477,5808 bis 922.337.203.685.477,5807
Beispiel:
Dim Brutto_Gehalt_Zahl As Currency
Brutto_Gehalt_Zahl = 3600.90

Decimal Dieser Variablentyp nimmt Dezimalzahlen auf und benötigt 14 Bytes
+/-79.228.162.514.264.337.593.543.950.335 ohne Dezimalzeichen;
+/-7,9228162514264337593543950335 mit 28 Nachkommastellen;
die kleinste Zahl ungleich Null ist+/-0,0000000000000000000000000001.
Beispiel:
Dim Dez_Wert As Decimal
Dez_Wert = 3.141567

Date Dieser Variablentyp nimmt Zahlen zur Datumsdarstellung auf,
benötigt 8 Bytes
1. Januar 100 bis 31. Dezember 9999.
Schreibweise z.B. #1/8/2000# für den 8.1.2000
Beispiel:
Dim Geb_Tag As Date
Geb_Tag = #11/03/1943#

Object Dieser Typ wird für Objekte verwendet und benötigt4 Bytes
Beliebiger Verweis auf ein Objekt vom Typ Object.
Beispiel:
Dim Zelle As Object ' oder As Range
Set Zelle = Worksheet("Tabelle2").Range("C1")

String Variable für Zeichenketten variabler Länge hat 10 Bytes plus Zeichenfolgenlänge 0 bis ca. 2 Milliarden Zeichen.
Beispiel: Dim Text1 As String
Text1 = "Franz heißt die Kanaille!"

String Variable für Zeichenketten fester Länge benötigt 1 Byte pro Zeichen
1 bis ca. 65.400 Zeichen
Beispiel:
Dim Text1 As String*10
Text1 = "Franz Mohr"

Variant Variable ohne vorgegebenen Typ mit gespeicherten Zahlen benötigt 16 Bytes
für numerische Werte im Bereich des Datentyps Double.
Beispiel:
Dim Beliebig ' As Variant kann weggelassen werden
Beliebig = 1234.567

Variant Variable ohne vorgegebenen Typ mit gespeicherten Zeichen
benötigt 22 Bytes plus 1 Byte pro Zeichen
Wie bei String mit variabler Länge
Beispiel:
Dim Beliebig ' As Variant kann weggelassen werden
Beliebig = "Allgemeine Verunsicherung"

Zum besseren Verständnis geben Sie zunächst in das Modul zweites_Beispiel den folgenden Code ein:

Code:

Dim Zaehler As Byte 'Variable vom Type Byte

Dim Text As String 'Variable vom Type String

Dim Gehalt As Currency 'Variable vom Type Currency

Dim Ganz As Integer 'Variable vom Type Integer

Sub variablen_Bsp1()

Zaehler = 155

MsgBox Zaehler

Text = "Es geht hurtig durch Fleiß!"

MsgBox Text

Gehalt = 3200.99

MsgBox Gehalt

Ganz = 12345

MsgBox Ganz

End Sub

Sub variablen_Bsp2()

Zaehler = InputBox("Bitte eine 1-Byte-große Zahl.")

MsgBox Zaehler

Text = InputBox("Bitte einen Text")

MsgBox Text

Gehalt = InputBox("Dein Gehalt")

MsgBox Gehalt

Ganz = InputBox("Bitte eine Integerzahl.")

MsgBox Ganz

End Sub

Starten Sie dann beide Prozeduren. Wenn Sie in der zweiten Prozedur auf Anforderung andere Werte als zugelassen eingeben, erscheint eine Fehlermeldung. Klicken Sie auf "Beenden" zum Schließen der Meldung. Achtung: Die Datentypen müssen übereinstimmen!

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Über den Autor:

bild117282

Dieter Frommhold, Jahrgang 1943, Diplom-Lehrer für Physik und Mathematik, Verlagslektor und Programmierer. Seit 1971 langjährige Lehrtätigkeit über Betriebssysteme und Programmierung.

Ab 1994 arbe ...

Newsletter abonnieren