VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Private-Anweisung

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

Syntax

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

Die Syntax der Private-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 mit 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. Das Argument Indizes hat die folgende Syntax:
  [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, 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

Variablen vom Typ Private stehen nur in dem Modul zur Verfügung, in dem sie deklariert wurden.

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

Private AnzahlAngestellte As Integer

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

Private X As New Worksheet

Wenn das Schlüsselwort New nicht bei der Deklaration einer Objektvariablen verwendet wird, muß der Variablen, die auf ein Objekt verweist, 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.

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

Die Private-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 Dimensionen und Elemente in dem Datenfeld definieren. Wenn Sie eine Dimension 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.

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 und Variablen vom Typ Variant mit dem Wert Empty initialisiert. Alle Elemente einer Variablen eines benutzerdefinierten Typs werden genauso initialisiert wie eigenständige Variablen des entsprechenden Datentyps.

Anmerkung   Wenn Sie die Private-Anweisung in einer Prozedur verwenden, wird in der Regel die Private-Anweisung an den Anfang der Prozedur gestellt.