Gültigkeitsbereiche - Fakten

Standard-Gültigkeitsbereiche

Für all die eher prosaischen Leser, die mehr an Fakten als an Meinungen interessiert sind, sind in der nachfolgenden Tabelle die Standard-Gültigkeitsbereiche für verschiedene Elemente aufgelistet, die man in seinem Programm deklarieren kann:

Für Konstanten:

Konstanten
Standardmodule Form- und Klassenmodule
Standard: Private Standard: Private
Private OK Private OK
Public OK Public illegal

Für benutzdefinierte Typen:

Benutzdefinierte Typen
Standardmodule Form- und Klassenmodule
Standard: Public Standard: illegal
Private OK Private erforderlich
Public OK Public illegal

Für Deklarationsanweisungen:

Deklarationsanweisungen
Standardmodule Form- und Klassenmodule
Standard: Public Standard: illegal
Private OK Private erforderlich
Public OK Public illegal

Für Variablen:

Variablen
Standardmodule Form- und Klassenmodule
Standard: Private * Standard: Private *
Private OK Private OK
Public OK Public definiert Eigenschaft

Für Funktionen und Sub-Prozeduren:

Funktionen und Sub-Prozeduren
Standardmodule Form- und Klassenmodule
Standard: Public Standard: definiert Methode
Private OK Private OK
Public OK Public erstellt Methode

Für Eigenschaften:

Eigenschaften
Standardmodule Form- und Klassenmodule
Standard: Public Standard: Public
Private OK Private OK
Public OK Public OK

* Standard bedeutet Deklaration mit Dim, nicht mit Private oder Public.

ExpertentippPass auf Deine Typen auf: Einer der gefährlichsten Fehler in Visual Basic (For Applications) tritt auf, wenn man versucht, mehrere Deklarationen in einer Zeile unterzubringen. Zum Beispiel:

Dim c, i, h As Long

Man könnte jetzt glauben, drei Longinteger definiert zu haben. Falsch! Man hat stattdessen zwei Varianten (der Standardtyp für die ersten beiden) und eine explizit deklarierte Longinteger-Variable geschaffen. Hier eine andere Variante:

Dim c As Long, i, h

Richtig ist:

Dim c As Long, i As Long, h As Long
bzw.:
Dim c As Long
Dim i As Long
Dim h As Long