Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

VBA-Begriff: With-Anweisung

Führt eine Reihe von Anweisungen für ein einzelnes Objekt oder einen benutzerdefinierten Typ aus.

Syntax

With Objekt
[Anweisungen]

End With

Die Syntax der With-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
Objekt Erforderlich. Name eines Objekts oder eines benutzerdefinierten Typs.
Anweisungen Optional. Eine oder mehrere Anweisungen, die für Objekt ausgeführt werden sollen.

Bemerkungen

Mit der With-Anweisung können Sie eine Reihe von Anweisungen für ein bestimmtes Objekt ausführen, ohne den Namen des Objekts mehrmals angeben zu müssen. Wenn Sie zum Beispiel mehrere Eigenschaften eines bestimmten Objekts verändern möchten, sollten Sie die Zuweisungsanweisungen für die Eigenschaft in einer With-Kontrollstruktur unterbringen. Sie brauchen dann den Namen des Objekts nicht bei jeder einzelnen Zuweisung, sondern nur einmal zu Beginn der Kontrollstruktur anzugeben. Das folgende Beispiel veranschaulicht die Verwendung der With-Anweisung, um mehreren Eigenschaften desselben Objekts Werte zuzuweisen.

With Bezeichnungsfeld1
    .Height = 2000
    .Width = 2000
    .Caption = "Schönen Tag noch"
End With

Anmerkung°°°Nachdem mit der Ausführung eines With-Blocks begonnen wurde, kann Objekt nicht mehr geändert werden. Sie können daher in einer einzelnen With-Anweisung nicht mehrere unterschiedliche Objekte bearbeiten.

Sie können With-Anweisungen verschachteln, indem Sie einen With-Block in einen anderen einfügen. Da die Elemente der äußeren With-Blöcke jedoch in den inneren With-Blöcken "ausgeblendet" werden, müssen Sie für alle Elemente eines Objekts in einem äußeren With-Block innerhalb eines inneren With-Blocks einen vollständigen Objektverweis angeben.

Wichtig°°°Allgemein gilt, daß Sie nicht in With-Blöcke hinein- oder aus ihnen herausspringen sollten. Eine temporäre Variable, die einen Verweis auf ein Objekt enthält, bleibt im Speicher bis Sie die Prozedur beenden, wenn Anweisungen in einem With-Block ausgeführt werden, ohne daß entweder die With- oder die End With-Anweisung ausgeführt werden.