In diesem Artikel wird gezeigt, wie Sie With und End With in VBA verwenden
Excel bietet uns die Möglichkeit, VBA durch das Aufzeichnen von Makros zu erlernen. Diese Makros zeichnen buchstäblich alles auf, was wir auf dem Bildschirm tun und konvertieren die Aktionen in VBA-Code. Wir können diesen Code dann analysieren und daraus lernen.
Wenn wir ein Makro in VBA aufzeichnen, insbesondere wenn wir das Format von Zellen ändern, verwendet das Makro meistens die With… End With Syntax in seiner Aufzeichnung. Zu verstehen, was diese bedeuten und wofür sie verwendet werden, ist ein wichtiger Teil von VBA.
Aufzeichnen eines Makros
Um ein Makro in Excel aufzuzeichnen, im Schleife, auswählen Ansicht > Makro > Makro aufzeichnen.
ODER
Entwickler > Makro aufzeichnen
Hinweis: Wenn das Entwicklermenüband nicht angezeigt wird, müssen Sie es aktivieren. Klicken Sie HIER, um zu erfahren, wie das geht.
Geben Sie den Namen für das Makro ein und klicken Sie auf OK.
Markieren Sie einige Zellen und formatieren Sie sie dann für Fett, ändern Sie die Farbe in Rot und ändern Sie die Schriftgröße. Klicken Sie dann in der unteren linken Ecke des Bildschirms auf Stopp, um die Aufnahme des Makros zu beenden.
WITH-Anweisungssyntax
Um Ihr aufgezeichnetes Makro anzuzeigen/zu bearbeiten: Wählen Sie in der Multifunktionsleiste Ansicht > Makros > Makros anzeigen. Wählen Sie das gerade aufgezeichnete Makro aus und klicken Sie dann auf Bearbeiten.
ODER
Wählen Sie in der Multifunktionsleiste Entwickler > Visual Basic um zum VBE-Fenster zu wechseln.
Das aufgezeichnete Makro kann in etwa wie im folgenden Beispiel aussehen
123456789 | Unter mit Makro()Bereich("A2:C10").WählenSelection.Font.Bold = TrueAuswahl.Schriftgröße = 12Mit Selection.Font.Farbe = -16776961.TintAndShade = 0Ende mitEnd Sub |
Als erstes haben wir den Bereich A2:C10 ausgewählt.
Wir haben dann Fett auf true und die Schriftgröße auf 12 gesetzt. Beachten Sie, dass der Code „Selection.Font“ für diese Zeilen wiederholt wird.
Das Makro hat uns dann aufgezeichnet, wie wir die Farbe des Textes ändern - beachten Sie, dass diesmal die Selection.Font a MIT davor, und die beiden Eigenschaften, die geändert werden (die Farbe und der Farbton) haben einen Punkt (.) davor. Der Codebereich wird dann mit einem vervollständigt ENDE MIT.
Um diesen Code zu vereinfachen, können wir Bold und Size so verschieben, dass sie innerhalb der WITH-Anweisung stehen, und daher das Wort Selection nicht mehr wiederholen müssen.
123456789 | Unter mit Makro()Bereich("A2:C10").WählenMit Selection.Font.Fett = Wahr.Größe = 12.Farbe = -16776961.TintAndShade = 0Ende mitEnd Sub |
Die Syntax einer WITH… END WITH-Anweisung ist daher sehr einfach:
123 | MIT Objekt'Eigenschaften zum Formatieren/ÄndernENDE MIT |
Wir hätten den Code auch anders ändern können:
1234567 | Sub RemoveWith()Bereich("A2:C10").WählenSelection.Font.Bold = TrueAuswahl.Schriftgröße = 12Auswahl.Font.Color = -16776961Selection.Font.TintAndShade = 0End Sub |
Im obigen Beispiel haben wir in jeder Zeile des Codes die Wörter Selection.Font hinzugefügt. Wir haben daher im Code wiederholt auf das Selection.Font-Objekt verwiesen.
Die Verwendung der WITH-Anweisung bedeutet jedoch, dass wir im Code nur einmal auf dieses Objekt verweisen müssen. Es ist eine sauberere Art der Codierung - es sagt VBA, dass es bei WITH beginnen und bei END WITH enden soll - der auszuführende Code ist vollständig in diesen beiden Wörtern eingeschlossen. Dadurch wird das Makro schneller und effizienter ausgeführt (insbesondere bei längeren Makros) und Ihrem Code Struktur hinzugefügt.