Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

VBA-Begriff: Public-Anweisung

Wird auf Modulebene verwendet, um öffentliche Variablen zu deklarieren und den dafür erforderlichen Speicher zu reservieren.

Syntax

Public [WithEvents] VarName[([Indizes])] [As [New] Typ] [,[WithEvents] VarName[([Indizes])] [As [New] Typ]] . . .

Die Syntax der Public-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
WithEvents Optional. Schlüsselwort, das angibt, daß VarName eine Objektvariable ist, die verwendet wird, um auf Ereignisse zu reagieren, die von einem ActiveX-Objekt ausgelöst wurden. Nur gültig in Klassenmodulen. Sie können über WithEvents beliebig viele Variablen deklarieren, jedoch keine Datenfelder erstellen. Sie können New nicht zusammen mit WithEvents verwenden.
VarName Erforderlich. Name der Variablen gemäß den Standardkonventionen für Namen von Variablen.
Indizes Optional. Dimensionen einer Datenfeldvariablen. Bis zu 60 Dimensionen sind zulässig. Die Syntax für das Argument Indizes ist:
  [Untergrenze To] Obergrenze [,[Untergrenze To] Obergrenze] . . .
  Wenn nicht explizit in Untergrenze angegeben, wird die Untergrenze eines Datenfeldes durch die Option Base-Anweisung gesteuert. Die Untergrenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.
New Optional. Dieses Schlüsselwort ermöglicht das implizite Erstellen eines Objekts. Wenn Sie New bei der Deklaration der Objektvariable verwenden, so wird eine neue Instanz des Objekts aufgrund des ersten Verweises erstellt, so daß Sie die Set-Anweisung für die Zuweisung des Objektverweises nicht verwenden müssen. Das Schlüsselwort New kann nicht zur Deklaration von Variablen eines integrierten Datentyps oder zur Deklaration von Instanzen abhängiger Objekte verwendet werden. Es kann ebenfalls nicht mit WithEvents verwendet werden.
Typ Optional. Datentyp der Variablen. Zulässige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstützt), Date, String, (für Zeichenfolgen variabler Länge), String * Länge (für Zeichenfolgen fester Länge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp. Verwenden Sie für jede deklarierte Variable einen separaten As Typ-Abschnitt.

Bemerkungen

Auf Variablen, die mit der Public-Anweisung deklariert wurden, kann von allen Prozeduren in allen Modulen aus allen Anwendungen zugegriffen werden. Wenn allerdings Option Private Module aktiviert wurde, sind die Variablen nur innerhalb des zugehörigen Projekts öffentlich.

Vorsicht   Die Public-Anweisung kann nicht in Klassenmodulen zur Deklaration einer Zeichenfolgenvariable fester Länge verwendet werden.

Mit der Public-Anweisung deklarieren Sie den Datentyp einer Variablen. Die folgende Anweisung deklariert beispielsweise eine Variable als Integer:

Public AnzaHlAngestellte As Integer

Verwenden Sie eine Public-Anweisung auch, um den Objekttyp einer Variablen zu deklarieren. Die folgende Anweisung deklariert eine Variable für eine neue Instanz einer Tabelle.

Public X As New Worksheet

Wenn das Schlüsselwort New nicht bei der Deklaration einer Objektvariablen verwendet wird, existiert momentan keine Instanz des Objekts. Einer Variablen mit einem Verweis auf ein Objekt muß mit der Set-Anweisung ein existierendes Objekt zugewiesen werden, bevor sie verwendet werden kann. Eine deklarierte Objektvariable hat vor dem Zuweisen eines Objekts den Spezialwert Nothing, der anzeigt, daß die Variable auf keine bestimmte Instanz eines Objekts verweist.

Die Public-Anweisung in Kombination mit einem leeren Klammernpaar dient zur Deklaration eines dynamischen Datenfeldes. Nach einer solchen Deklaration können Sie mit der ReDim-Anweisung innerhalb einer Prozedur die Anzahl der Indizes und Elemente in dem Datenfeld definieren. Wenn Sie einen Index für eine Datenfeldvariable mit einer weiteren Deklaration ändern möchten und die Größe des Datenfeldes bereits explizit mit einer Private-, Public - oder Dim-Anweisung festgelegt wurde, tritt ein Fehler auf.

Wenn Sie keinen Datentyp oder Objekttyp angeben und auch keine DefTyp-Anweisung im jeweiligen Modul verwenden, erhält die Variable standardmäßig den Datentyp Variant.

Bei der Initialisierung wird numerischen Variablen der Wert 0 und Zeichenfolgen variabler Länge eine Null-Zeichenfolge ("") zugewiesen. Zeichenfolgen fester Länge werden mit Nullen aufgefüllt, und Variant-Variablen werden mit Empty initialisiert. Alle Elemente einer Variablen mit einem benutzerdefinierten Typ werden genauso initialisiert wie eigenständige Variablen des entsprechenden Datentyps.