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:
| Standardmodule | Form- und Klassenmodule |
| Standard: Private | Standard: Private |
| Private OK | Private OK |
| Public OK | Public illegal |
Für benutzdefinierte Typen:
| Standardmodule | Form- und Klassenmodule |
| Standard: Public | Standard: illegal |
| Private OK | Private erforderlich |
| Public OK | Public illegal |
Für Deklarationsanweisungen:
| Standardmodule | Form- und Klassenmodule |
| Standard: Public | Standard: illegal |
| Private OK | Private erforderlich |
| Public OK | Public illegal |
Für Variablen:
| Standardmodule | Form- und Klassenmodule |
| Standard: Private * | Standard: Private * |
| Private OK | Private OK |
| Public OK | Public definiert Eigenschaft |
Für 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:
| 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.
Pass 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