VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Set-Anweisung

Weist einer Variablen oder Eigenschaft einen Objektverweis zu.

Syntax

Set ObjektVar = {[New] ObjektAusdr | Nothing}

Die Syntax der Set-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
ObjektVar Erforderlich. Name der Variablen oder Eigenschaft gemäß den Standardkonventionen für Namen von Variablen.
New Optional. Das Schlüsselwort New ermöglicht das implizite Erstellen eines Objekts. Wenn Sie New mit Set verwenden, wird eine neue Instanz der Klasse erstellt. Wenn ObjektVar einen Verweis auf ein Objekt enthält, so wird dieser Verweis freigegeben, wenn der neue Verweis zugewiesen wird. Das Schlüsselwort New kann nicht zur Erstellung neuer Instanzen von integrierten Datentypen oder zur Erstellung abhängiger Objekte verwendet werden.
ObjektAusdr Erforderlich. Ausdruck mit dem Namen eines Objekts, einer anderen deklarierten Variablen desselben Objekttyps oder einer Funktion bzw. Methode, die ein Objekt desselben Typs zurückgibt.
Nothing Optional. Hebt die Zuordnung von ObjektVar zu einem bestimmten Objekt auf. Durch Zuweisen von Nothing an ObjektVar werden alle Ressourcen des zuvor referenzierten Objekts freigegeben, sofern das Objekt von keiner anderen Variablen referenziert wird.

Bemerkungen

ObjektVar ist nur gültig, wenn der zugehörige Objekttyp mit dem Typ des zugewiesenen Objekts identisch ist.

Die Anweisungen Dim, Private, Public, ReDim und Static deklarieren lediglich eine Variable, die ein Objekt referenziert. Ein tatsächlicher Verweis auf ein Objekt kommt erst zustande, wenn Sie mit der Set-Anweisung ein bestimmtes Objekt zuweisen.

Das folgende Beispiel zeigt, wie Dim verwendet wird, um das Datenfeld mit dem Typ Form1 zu deklarieren. Momentan existiert keine Instanz von Form1. Set weist der Variablen TestUnterFormulare Verweise auf neue Instanzen von Form1 zu. Dieser Code kann zur Erstellung von untergeordneten Formularen in einer MDI-Anwendung verwendet werden.

Dim TestUnterFormulare(1 to 4) As Form1
Set TestUnterFormulare(1) = New Form1
Set TestUnterFormulare(2) = New Form1
Set TestUnterFormulare(3) = New Form1
Set TestUnterFormulare(4) = New Form1

Wenn Sie mit Set einer Variablen einen Objektverweis zuweisen, wird keine Kopie des Objekts erzeugt, sondern ein Verweis auf das Objekt. Mehrere Objektvariablen können gleichzeitig auf dasselbe Objekt verweisen. Da all diese Variablen auf ein Objekt verweisen (und keine Kopie davon enthalten), wirken sich Änderungen an dem Objekt immer auf alle Variablen mit einem Verweis auf das Objekt aus. Wenn Sie jedoch in der Set-Anweisung das Schlüsselwort New verwenden, erstellen Sie tatsächlich eine neue Instanz des Objekts.