Prozedur Builder

Der Procedure Builder (ALT P) erzeugt schnell eine Prozedur mit spezifischen Einstellungen (ScreenUpdating usw.). Sie können Ihre Standardeinstellungen für Prozeduren speichern, um beim Schreiben neuer Prozeduren Zeit zu sparen.

Ausgabe:

Use Cases
- Erstellen Sie schnell Unterverfahren oder Funktionen mit Ihren gewünschten Einstellungen.
- Speichern Sie die Einstellungen zur späteren Verwendung.
Einstellungen als Standard speichern
Um Ihre aktuellen Einstellungen als Standard zu speichern (damit Sie in Zukunft leichter darauf zugreifen können), klicken Sie auf das Symbol unten rechts im Builder:

Beschreibung der Einstellungen
Im Folgenden finden Sie eine Beschreibung der im Procedure Builder verfügbaren Einstellungen.
Funktionen und Subs
Beim Kodieren (in VBA oder einer anderen Sprache) wird der Code in der Regel in Prozeduren gespeichert. Prozeduren sind lediglich Codeblöcke, die aufgerufen (ausgeführt) werden können. Sie sind wahrscheinlich mit dem Konzept der Aufzeichnung eines Makros in Excel vertraut. Wenn Sie ein Makro aufzeichnen, erstellen Sie eigentlich nur eine VBA-Prozedur, wobei es in VBA zwei Arten von Prozeduren gibt: Unterroutinen (Subs) und Funktionen. Unterprogramme und Funktionen haben drei Hauptunterschiede:
- Funktionen geben einen Wert zurück
- Funktionen können in Excel-Formeln verwendet werden
- Funktionen können nur über andere Prozeduren (oder Excel-Formeln) aufgerufen werden. Sie können eine Funktion nicht einer Befehlsschaltfläche zuweisen oder über die Makroliste aufrufen.
Abgeschlossene Funktionen und Unterfunktionen sehen wie folgt aus:

Da Funktionen Werte zurückgeben, müssen Sie VBA mitteilen, welche Art von Wert Sie erwarten. Oben haben wir die Funktion als booleschen Wert deklariert (TRUE oder FALSE):
Function Ex_Function() As Boolean
Stattdessen können Sie eine Function als Variantentyp deklarieren, der alle Wertetypen akzeptiert:
Function Ex_Function() As Variant
Der Procedure Builder setzt alle Funktionen auf den Typ Variant.
Schalten Sie hier zwischen Sub und Funktion um:

Name und Beschreibung
Es ist wichtig, Prozeduren anschaulich zu benennen und Kommentare hinzuzufügen, um zu beschreiben, was eine Prozedur tut. Ihr Code mag für Sie jetzt sinnvoll sein, aber für jemand anderen (auch für Ihr zukünftiges Ich) ist er möglicherweise nicht sinnvoll. Am besten fügen Sie für jede Prozedur, die Sie erstellen, Kommentare hinzu.
Fügen Sie hier Namen und Kommentare hinzu:

Privat vs. Öffentlich (Fortgeschrittene)
Standardmäßig sind Prozeduren über die Makroliste (nur Subs) zugänglich und können von jeder anderen Prozedur aufgerufen werden. Die Private-Deklaration verbirgt die Prozedur aus der Makro-Liste und stellt die Prozedur so ein, dass sie nur vom aktuellen Code-Modul aus zugänglich ist (Hinweis: Technisch können Sie dies umgehen, indem Sie Application.Run verwenden).
Um die Private Deklaration zu machen, fügen Sie Private vor dem Prozedurnamen ein:
Private Sub Ex_Sub
Sie können auch ganze Module als „privat“ deklarieren. Fügen Sie dazu Private Module am Anfang Ihres Codemoduls hinzu:
Privates Modul
Wenn Sie ein ganzes Modul als privat kennzeichnen, werden alle Prozeduren aus der Makroliste ausgeblendet, aber sie können von anderen Modulen aus leicht referenziert werden.
Definieren Sie hier öffentlich oder privat:

Einstellungen
Alle Anwendungen (Excel, PowerPoint, Outlook usw.) haben Einstellungen auf Anwendungsebene. Einige dieser Einstellungen sind für die VBA-Codierung sehr wichtig. Wichtig: Einstellungen auf Anwendungsebene sind unabhängig von Prozeduren. Sie werden nach Beendigung einer Prozedur nicht manuell „zurückgesetzt“. Stattdessen müssen sie bei Bedarf erneut manuell geändert werden.
Mit dem Procedure Builder können Sie die folgenden Einstellungen auf Anwendungsebene vornehmen:

Hinweis: „Display Message Box After Complete“ ist keine anwendungsspezifische Einstellung, sondern wird im nächsten Abschnitt behandelt.

Disable ScreenUpdating – Der Bildschirm wird nicht aktualisiert, während das Verfahren läuft. Dies kann die Bearbeitungszeit drastisch verkürzen.
Automatische Berechnungen deaktivieren – Dies ist eine Excel-Einstellung, mit der automatische Berechnungen deaktiviert werden. Dies kann die Verarbeitungszeit drastisch beschleunigen.
Warnungen deaktivieren – Warnmeldungen und Eingabeaufforderungen werden dem Benutzer nicht angezeigt. Stattdessen wird VBA die Standardaktion ausführen.
Ereignisse deaktivieren – Ereignisse sind „Auslöser“, die dazu führen können, dass Code ausgeführt wird (z. B. Arbeitsmappe öffnen, Blatt aktivieren, Zellenänderung usw.). Wenn Ihre Arbeitsmappe Ereignisse hat, möchten Sie wahrscheinlich Ereignisse deaktivieren, während Ihr Code läuft, um unbeabsichtigtes Verhalten (einschließlich Endlosschleifen) zu verhindern.
Meldungsfeld bei Abschluss der Prozedur – Bei Prozeduren, deren Ausführung mehr als ein paar Sekunden dauert, ist es oft sinnvoll, nach Abschluss der Prozedur ein Meldungsfeld anzuzeigen. Dadurch wird der Benutzer darauf aufmerksam gemacht, dass die Prozedur beendet ist. Für unsere Kunden richten wir in der Regel Warnmeldungen für alle Verfahren ein, deren Ausführung länger als 15 Sekunden dauert.
Fehlerbehandlung – Standardmäßig stoppt VBA die Ausführung von Code, wenn ein Fehler auftritt, und fordert den Benutzer auf, den Code zu „debuggen“. Dies ist beim Testen/Entwickeln wünschenswert. Es gibt jedoch viele Szenarien, in denen es wünschenswert ist, Fehler auf andere Weise zu behandeln.
Die Fehlerbehandlung wird auf der Ebene der Prozedur definiert. Es handelt sich nicht um eine Einstellung auf Anwendungsebene. Jede Prozedur, die eine vom Standard abweichende Fehlerbehandlung benötigt, braucht also eine Deklaration zur Fehlerbehandlung:
- On Error Resume Next: VBA überspringt die fehlerhafte(n) Zeile(n) und fährt mit der nächsten Code-Zeile fort.
- Bei Fehler Springe zu Fehler_Handle: Bei einem Fehler springt VBA zu einem bestimmten Abschnitt der Prozedur (in diesem Fall ‚Error_Handle‘). Dies ist nützlich, um bei einem Fehler ein Meldungsfeld anzuzeigen, den Vorgang zu wiederholen/neu zu versuchen oder einen Codeabschnitt zu überspringen.
- On Error Goto End: Dies ist eigentlich dasselbe wie die vorherige Einstellung, nur dass hier „Gehe zu“ zu einem Abschnitt am Ende der Prozedur führt.
Um die Standardfehlerbehandlung wiederherzustellen, geben Sie Folgendes ein:
Bei Fehler Gehe zu 0
Dies ist beim Testen/Entwickeln wünschenswert. Es gibt jedoch viele Szenarien, in denen es wünschenswert ist, Fehler auf andere Weise zu behandeln.
Hinweis: Es ist eine „Best Practice“, Fehler nicht absichtlich zuzulassen und die Fehlerbehandlung zu verwenden, um sie zu verarbeiten. Stattdessen sollten Sie intelligenteren Code verwenden, um VBA-Fehler von vornherein zu vermeiden.
Prozedur Builder: Fehlerbehandlung:

Excel automatisieren starten
