VBA: Die With-Anweisung

WithAnweisung2

Was sind With-Anweisungen in der Makro-Programmierung?

With-Anweisungen fassen mehrere Anweisungen für ein Objekt zusammen.

Sie ermöglichen dir das Ausführen einer Reihe von Anweisungen für ein angegebenes Objekt, ohne den Objektnamen jeweils neu zu qualifizieren.

Wenn du z.B. eine Reihe von unterschiedlichen Eigenschaften für ein einzelnes Objekt ändern möchtest, fügst du die Eigenschaftsanweisungen in die With-Struktur ein, sodass nicht bei jeder Eigenschaftszuordnung auf das Objekt verwiesen wird, sondern nur einmal.

Der Beitrag soll aufzeigen, wie mit der With-Anweisung umgegangen werden kann.

1. Code 1 ohne With-Anweisung

Z.B. könnten in einem Code folgende Zeilen vorkommen:

WithAnweisung2 2

Mit „ThisWorkbook“ wird die Arbeitsmappe angesprochen, in der sich der auszuführende Code befindet.

Es folgt „Worksheets(1), das ist das Arbeitsblatt, in dem sich das zu bearbeitende Objekt befindet.

Mit „Range(„C7“)“ wird schließlich das besagte Objekt definiert.

„Interior.Color“ ist die Anweisung für eine Hintergrundfarbe, mit „vbYellow“ wird „gelb“ festgelegt.

Die nächste Zeile bestimmt mit „Value“ den Inhalt der Zelle, nämlich „Mittwoch“.        

Rufe im Menü Entwicklertools / Code „Visual Basic“ auf. Füge über „Einfügen“ ein Modul ein.

Schreibe den zuvor aufgeführten Code dort hinein (siehe oben).

Lasse den Code ausführen.

Das ist das Ergebnis:

WithAnweisung1

2. Code 2 ohne With-Anweisung

Enthält der Code nur zwei Zeilen, ist die ganze Sache noch recht übersichtlich.

Es könnte aber sein, dass die Zelle C7 mit weiteren denkbaren Eigenschaften ausgestattet werden soll.

Solche Eigenschaften können die horizontale oder vertikale Ausrichtung oder verschiedene Schrifteigenschaften sein.

Diese Wünsche umgesetzt, würden nachfolgenden Code ergeben.

WithAnweisung3 1

Die beiden ersten Zeilen wurden bereits oben erläutert.

Mit „HorizontalAlignment“ wird die horizontale Ausrichtung festgelegt, „xlCenter“ bedeutet zentriert.

„VerticalAlignment“ bezeichnet die vertikale Ausrichtung in der Zelle, „xlCenter“ bedeutet wiederum zentriert.

„Font“ bezeichnet die Schrift, dabei bedeutet „Bold“ fett, „Italic“ ist die Schriftart und „Size“ benennt die Schriftgröße, hier 16.

Lasse nun wieder das Makro ausführen, dies ist das Ergebnis:

WithAnweisung4

Die ausgewählte Zelle ist C12.

Der Text lautet Mittwoch.

Der Text ist horizontal und vertikal jeweils zentriert ausgerichtet.

Die Schrift ist fett, in Schriftart Italic und in Schriftgröße 16.

3. Code 3 mit With-Anweisung

Nun soll der Code aus Abschnitt 2 mit einer With-Anweisung ausgestattet werden.

Alle Anweisungen betreffen ThisWorkbook.

Zur besseren Übersicht soll der Code in Worksheets(3).Range(„C14“) ausgeführt werden.

Schreibe nachfolgenden Code in ein Modul.

WithAnweisung5

Beginne den Code mit der Anweisung „With“ und benenne dann das Objekt.

Die folgenden Zeilen beginnen jeweils mit einem Punkt, gefolgt von der Zuordnung einer Eigenschaft.

Hast du alle Eigenschaften zugeordnet, schließe die With-Anweisung mit „End With“ und das Makro mit „End Sub“.

Lasse nun das Makro ausführen.

Dies ist das Ergebnis.

WithAnweisung6 2

Was ist der Vorteil eines Codes mit With-Anweisung?

Du hast weniger Schreibarbeit.

Die Prozedur kann schneller ablaufen.

Der Code ist übersichtlicher.

4. Code 4 mit geschachtelter With-Anweisung

Schaust du dir noch einmal den vorangegangenen Code an, wird dir auffallen, dass die Font-Eigenschaft mehrmals vorkommt.

Hier ergibt sich nun die Möglichkeit, diese Eigenschaften in einer weiteren With-Anweisung, unterhalb der ersten With-Anweisung, zu verarbeiten.

Schreibe den Code wiederum in ein Modul.

WithAnweisung7

Du siehst, statt der Zeile „.Font.Bold=True“ usw. schreibst du mit „With .Font“ eine weitere With-Anweisung für das Schriftartobjekt.

Die Eigenschaften werden dann mit einem Punkt beginnend nacheinander aufgeführt.

Lass das Makro ausführen, das Ergebnis ist identisch mit dem vorangegangenen.

Somit machst du dir die Vorteile einer With-Anweisung nochmals zu Nutze.


Entdecke mehr von Clevercalcul

Subscribe to get the latest posts sent to your email.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner