VBA - Öffnen und Verwenden des Visual Basic Editors (VBE) in Excel

Dieses Tutorial zeigt Ihnen, wie Sie den Visual Basic-Editor in VBA öffnen und programmieren.

Öffnen des Visual Basic-Editors

Es gibt mehrere Möglichkeiten, auf den Visual Basic-Editor (VBE) in Excel zuzugreifen.

Drücken Sie Alt + F11 auf Ihrer Tastatur.

ODER

Klicken Ansicht > Makros > Makros anzeigen. Von hier aus kannst du Bearbeiten ein vorhandenes Makro oder Schaffen ein neuer. Beide Optionen öffnen den VB-Editor.

ODER

Entwickler > Visual Basic

Hinweis: Wenn das Entwicklermenüband nicht angezeigt wird, müssen Sie es aktivieren.

So aktivieren Sie das Entwickler-Menüband

Klicken Sie auf die Datei Registerkarte in der Multifunktionsleiste, und gehen Sie nach unten zu Optionen. In dem Menüband anpassen Optionen, kreuzen Sie das an Entwickler Kontrollkästchen. Dies ist standardmäßig deaktiviert, sodass Sie es aktivieren müssen, um die Registerkarte im Menüband zu sehen.

Klicken OK.

Die Registerkarte Entwickler wird in der Hauptleiste angezeigt. Klicken Sie am Anfang des Menübands auf Visual Basic, um auf den Visual Basic-Editor zuzugreifen.

Den VBE-Bildschirm verstehen

Der VBE-Bildschirm ist in der folgenden Grafik dargestellt.

Der Projekt-Explorer

Mit dem Projekt-Explorer können Sie sehen, wie das Projekt, in dem Sie arbeiten, organisiert ist. Sie sehen, wie viele Module und Formulare im Projekt gespeichert sind, und können zwischen diesen Modulen und Formularen navigieren. In einem Modul wird der Code in Ihrer Arbeitsmappe gespeichert. Wenn Sie ein Makro aufzeichnen, wird es in einem Standardmodul gespeichert - das standardmäßig den Namen "Modul 1'.

Jedes der Arbeitsblätter in Ihrer Excel-Datei hat auch ein Modul dahinter, ebenso wie die Arbeitsmappe selbst. Wenn Sie über den Excel-Hauptbildschirm ein neues Blatt in die Arbeitsmappe einfügen, wird im Projekt-Explorer ein zusätzliches Blattmodul angezeigt.

Doppelklicken Sie auf ein Modul, um zum Code für dieses Modul zu gelangen.

Sie können auch auf das Menü Fenster in der Symbolleiste klicken und dort das Modul auswählen, um zum Code für dieses Modul zu gelangen.

Art der Module

Die Module sind in 5 verschiedene Typen unterteilt.

  1. Standardmodule - Der größte Teil Ihres Codes wird in diese Art von Modul gehen. Wenn Sie ein Makro aufzeichnen, wird es in ein Standardmodul eingefügt. Wenn Sie eine allgemeine Prozedur schreiben, die in Ihrer gesamten Arbeitsmappe verwendet werden soll, wird sie normalerweise auch in ein Standardmodul aufgenommen.
  2. Arbeitsbuchmodule - Dieses Modul enthält den Code, der für diese einzelne Arbeitsmappe eindeutig ist. Der größte Teil des Codes in dieser Art von Modulen ist bekannt als VERANSTALTUNGEN. Ein Ereignis kann beispielsweise auftreten, wenn eine Arbeitsmappe geöffnet oder geschlossen wird. Das Modul kann auch Code enthalten, der von Ihnen selbst geschrieben und von den Ereignissen verwendet wird.
  3. Plattenmodule - Dieses Modul enthält den Code, der für dieses einzelne Blatt eindeutig ist. Sie können auftreten, wenn zum Beispiel auf ein Blatt geklickt wird (die Klicken Sie auf Ereignis) oder wenn Sie Daten in einer Zelle ändern. Dieses Modul kann auch Code enthalten, der von Ihnen selbst geschrieben und von den Events aufgerufen wird.
  4. Formularmodule - Dies ist das Modul hinter einem benutzerdefinierten Formular, das Sie erstellen können. Sie können beispielsweise ein Formular erstellen, um Details für eine Rechnung zu speichern, mit einer OK-Schaltfläche, der Code hinter der Schaltfläche (das Klickereignis) enthält den Code, der ausgeführt wird, wenn die Schaltfläche angeklickt wird.
  5. Klassenmodule - Dieses Modul wird verwendet, um Objekte zur Laufzeit zu erstellen. Klassenmodule werden von fortgeschrittenen VBA-Programmierern verwendet und zu einem späteren Zeitpunkt behandelt.

Ein Modul oder Formular in Ihren Code einfügen

Um ein neues Modul in Ihren Code einzufügen, klicken Sie auf das Einfügung Option in der Menüleiste und klicken Sie auf Modul.

Oder klicken Sie auf das Modul einfügen Schaltfläche, die Sie auf dem Standardband finden.

Um ein neues Benutzerformular in Ihren Code einzufügen, wählen Sie das Benutzerformular Möglichkeit.

Ein neues Benutzerformular erscheint im Projekt-Explorer und wird im Codefenster rechts angezeigt.

Sie können auch a . einfügen Klassenmodul

Ein Klassenmodul wird verwendet, um Objekte in Ihr VBA-Projekt einzufügen.

Entfernen eines Moduls oder Formulars aus dem Projekt-Explorer

Klicken Sie mit der rechten Maustaste auf das Modul oder Formular, das Sie entfernen möchten, um das Kontextmenü anzuzeigen.

Klicken Entfernen (in diesem Fall UserForm1… )

ODER

Klicken Sie auf die Datei Menü und klicken Sie dann auf Entfernen (UserForm1).

Ein Warnfeld wird angezeigt, in dem Sie gefragt werden, ob Sie das Formular oder Modul exportieren möchten, bevor Sie es entfernen. Durch den Export des Formulars oder Moduls können Sie es als einzelne Datei speichern, um sie zu einem anderen Zeitpunkt in einem anderen Excel-Projekt zu verwenden.

Wenn Sie ein Modul oder Formular entfernen, liegt es meistens daran, dass Sie es nicht benötigen, also klicken Sie auf Nein.

Das Eigenschaftenfenster

Sie sehen das Eigenschaftenfenster unter dem Projekt-Explorer. Möglicherweise müssen Sie dies einschalten.

Drücken Sie F4 oder klick Sicht, Eigenschaftenfenster.

Im Eigenschaftenfenster können Sie die Eigenschaften des jeweiligen Moduls oder Formulars anzeigen, das im Menü ausgewählt ist Projekt-Explorer. Wenn Sie in Modulen arbeiten, können Sie im Eigenschaftsfenster den Namen des Moduls ändern. Dies ist die einzige Eigenschaft, die einem Modul zur Verfügung steht. Wenn Sie jedoch mit Formularen arbeiten, stehen Ihnen weitaus mehr Eigenschaften zur Verfügung und das Eigenschaftenfenster wird dann ausgiebig verwendet, um das Verhalten von Formularen und den im Formular enthaltenen Steuerelementen zu steuern.

Wenn Sie ein Makro aufzeichnen, wird es automatisch in ein Standardmodul eingefügt. Das Modul erhält den Namen „Modul 1' und jeder Code, der in diesem Modul enthalten ist, kann während Ihres gesamten Projekts verwendet werden. Sie sollten Ihr Modul in einen wichtigen Namen umbenennen, damit Ihr Code leichter zu finden ist, wenn Sie dem Projekt mehrere Module hinzufügen.

Sie können Ihre Formulare auch umbenennen.

Wenn Sie Ihr Blatt in Excel umbenannt haben, wird der Name des Blatts als Name des Blatts in Klammern hinter Sheet1 angezeigt.

Wenn Sie den Namen des Moduls hinter dem Blatt ändern möchten, können Sie ihn auf die gleiche Weise wie den Namen des Moduls und des Benutzerformulars ändern, indem Sie die Eigenschaft Name im Eigenschaftenfenster ändern.

Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!

Das Code-Fenster

Das Codefenster zeigt Ihnen die Unterprozeduren und Funktionen, die in Ihren Modulen enthalten sind - es zeigt Ihnen den eigentlichen Code. Wenn Sie ein Makro aufzeichnen, wird eine Unterprozedur für Sie erstellt. Wenn Sie dem Makro eine Tastenkombination hinzufügen, wird diese als Kommentar im Makro angezeigt, um Ihnen mitzuteilen, welche Tastenkombination Sie dem Makro zugewiesen haben.

Oben im Codefenster befinden sich zwei Kombinationsfelder. Diese ermöglichen Ihnen zu sehen, an welchem ​​Objekt (falls vorhanden) innerhalb des Moduls Sie möglicherweise arbeiten, und an welcher Prozedur Sie möglicherweise arbeiten.

Im obigen Beispiel arbeiten wir an keinem Objekt - daher ist dies auf general gesetzt, aber wir arbeiten innerhalb der Gridlines-Prozedur.

Wenn wir in diesem Modul mehr als eine Prozedur hätten, könnten wir das obige Kombinationsfeld verwenden, um zu den anderen Prozeduren zu navigieren.

Den Kodex verstehen

Es gibt 2 Arten von Verfahren - Unterverfahren und Funktionsabläufe.

Unterverfahren

Der Makrorekorder kann nur Unterprozeduren aufzeichnen. Eine Sub-Prozedur macht Dinge. Sie führen Aktionen wie das Formatieren einer Tabelle oder das Erstellen einer Pivot-Tabelle aus oder ändern im Beispiel mit der Gitternetzlinie die Ansichtseinstellungen Ihres aktiven Fensters. Die Mehrheit der geschriebenen Verfahren sind Unterverfahren. Alle Makros sind Unterprozeduren.

Ein Unterverfahren beginnt mit a Sub Aussage und endet mit an End Sub Stellungnahme. Dem Prozedurnamen folgen immer Klammern.

123 Unter HideGridLines()ActiveWindow.DisplayGridlines = FalseEnd Sub

Funktionsabläufe

Eine Function-Prozedur gibt einen Wert zurück. Dieser Wert kann ein einzelner Wert, ein Array, ein Zellbereich oder ein Objekt sein. Funktionen führen normalerweise eine Art von Berechnung durch. Funktionen in Excel können mit dem Funktionsassistenten verwendet oder aus Unterprozeduren aufgerufen werden.

123 Funktion Kilos (Pfund als Double)Kilo = (Pfund/2,2)Endfunktion

Diese Funktion kann im Dialogfeld Funktion einfügen in Excel verwendet werden, um Pfund in Kilogramm umzuwandeln.

Erstellen einer neuen Prozedur

Bevor Sie Ihre neue Prozedur erstellen, vergewissern Sie sich, dass Sie sich in dem Modul befinden, in dem Sie die Prozedur speichern möchten. Sie können eine neue Prozedur erstellen, indem Sie auf das Menü Einfügen, Prozedur klicken;

oder Sie können auf das Symbol in der Symbolleiste klicken

Das folgende Dialogfeld wird angezeigt

  1. Geben Sie den Namen Ihres neuen Verfahrens in das Namensfeld ein – dieser muss mit einem Buchstaben des Alphabets beginnen und kann Buchstaben und Zahlen enthalten und maximal 64 Zeichen lang sein.
  2. Sie können eine Unterverfahren, ein Funktionsablauf oder ein Eigentum Verfahren. (Eigenschaften werden in Klassenmodulen verwendet und legen Eigenschaften für ActiveX-Steuerelemente fest, die Sie möglicherweise erstellt haben).
  3. Sie können den Umfang des Verfahrens entweder Öffentlich oder Privatgelände. Wenn die Prozedur öffentlich ist (Standard), kann sie von allen Modulen im Projekt verwendet werden, während die Prozedur privat ist, kann sie nur von diesem Modul verwendet werden.
  4. Sie können lokale Variablen in dieser Prozedur als Statik deklarieren (dies hat mit dem Gültigkeitsbereich der Variablen zu tun und macht eine lokale Variable auf Prozedurebene für das gesamte Modul öffentlich). Wir werden diese Option nicht verwenden.

Wenn Sie alle relevanten Daten ausgefüllt haben, klicken Sie auf OK.

Anschließend geben Sie Ihren Code zwischen den Anweisungen Sub und End Sub ein.

ALTERNATIVE - Sie können die Sub- und End Sub-Anweisungen in Ihrem Modul genau so eingeben, wie sie oben angezeigt werden. Sie müssen das Wort Public nicht vor das Wort sub setzen - wird dieses Wort weggelassen, werden alle Prozeduren im Modul automatisch als Public angenommen.

Dann tippst du Sub und dann den Namen Ihres Verfahrens gefolgt von Klammern.

dh:

1 Teiltest()

Die End Sub Anweisung wird automatisch angezeigt.

VBA-Programmierung | Code Generator arbeitet für Sie!

Schreiben von Code, der leicht zu verstehen und zu navigieren ist

Kommentare hinzufügen

Gewöhnen Sie sich an, Kommentare in Ihren Code einzugeben, um sich zu einem späteren Zeitpunkt an die Funktionalität des Codes zu erinnern.

Sie können einen Kommentar in Ihren Code einfügen, aber einen Apostroph auf der Tastatur eingeben, oder Sie können die Bearbeiten-Symbolleiste aktivieren und die Kommentarschaltfläche verwenden, die in dieser Symbolleiste angezeigt wird.

Klicken Sie mit der rechten Maustaste auf die Symbolleisten.

Auswählen Bearbeiten.

Klicken Sie auf die Kommentarschaltfläche, um einen Kommentar in Ihren Code einzufügen.

HINWEIS: Normalerweise verwenden Sie den Kommentarblock-Button nur, wenn Sie einige Codezeilen haben, die Sie auskommentieren (und nicht löschen möchten). Für einen einzelnen Kommentar ist es einfacher, einen Apostroph zu verwenden.

Einrücken

Eine gute Angewohnheit ist es, Ihren Code einzurücken, damit Sie ihn leicht durchlesen und die verschiedenen Teile des Codes sehen können.

Abhängig von der Logik Ihres Codes kann es viele Einrückungsebenen geben.

Großbuchstaben vs. Kleinbuchstaben

VBA passt den gesamten Code an die richtige Groß-/Kleinschreibung an. Wenn Sie also ALLE IN GROSSBUCHSTABEN oder alles in Kleinbuchstaben eingeben, wird Ihr Code in die richtige Groß-/Kleinschreibung angepasst!

VBA-Programmierung | Code Generator arbeitet für Sie!

AutoVervollständigen

Wenn Sie Ihren Code anpassen, werden Sie feststellen, dass VBA versucht, Ihnen zu helfen, indem Sie den Code vorschlagen, den Sie eingeben können. Dies wird als AutoVervollständigen bezeichnet.

Fehlerabfangen und Debugging

Es gibt 4 Arten von Fehlern, die beim Schreiben von VBA-Code auftreten können: Syntaxfehler, Kompilierungsfehler, Laufzeitfehler und logische Fehler.

Syntaxfehler

Diese treten auf, wenn Sie den Code falsch schreiben. Dies wird durch VBA weitgehend verhindert, indem die Option Syntaxprüfung eingeschaltet wird. Dies ist normalerweise standardmäßig aktiviert, aber wenn Sie ausgeschaltet sind, schalten Sie es ein, indem Sie zu . gehen Werkzeuge, Optionen und klicke Automatische Syntaxprüfung.

Wenn Sie den Code falsch eingeben (z. B. etwas ausschließen, das im Code enthalten sein sollte), wird während des Schreibens des Codes ein Meldungsfeld angezeigt, das Ihnen die Möglichkeit gibt, den Code zu ändern.

Kompilierungsfehler

Diese treten auf, wenn im Code etwas fehlt, das die Ausführung des Codes verhindert. Der Fehler tritt nicht auf, wenn Sie den Code schreiben, aber er tritt auf, wenn Sie versuchen, den Code auszuführen.

VBA-Programmierung | Code Generator arbeitet für Sie!

Laufzeitfehler

Diese treten auf, wenn Sie den Code ausführen und die Syntax und Kompilierung korrekt sind, aber etwas anderes verhindert, dass der Code ordnungsgemäß ausgeführt wird.

In diesem Fall existiert Sheet4 nicht. Diese Fehlermeldung ist nützlicher als die Kompilierungsfehlermeldungen, da sie Ihnen die Möglichkeit gibt, den Code zu debuggen und zu sehen, warum er nicht funktioniert.

Klicken Debuggen. Der Code stoppt beim Fehler und hebt den Fehler gelb hervor, sodass Sie Ihren Fehler korrigieren können.

Ändern Sie Blatt4 in Blatt2 (da Blatt 2 vorhanden ist und Blatt 4 nicht vorhanden ist).

Drücken Sie F5 oder klicke auf das Weitermachen Schaltfläche in der Symbolleiste.

Logische Fehler

Diese sind am schwierigsten zu finden. In diesem Fall ist der Code korrekt geschrieben, aber die eigentliche Logik des Codes ist fehlerhaft, sodass Sie möglicherweise nicht das gewünschte Ergebnis des Codes erhalten. Bei logischen Fehlern ist das Error-Trapping unerlässlich.

Es gibt 2 Arten von Fehlerfallen

Bei Fehler Gehe zu

Der folgende Code dient zum Öffnen des Dialogfelds zum Öffnen von Dateien - es wird eine Fehlermeldung ausgegeben, wenn der Benutzer auf klickt Abbrechen.

Wenn Sie den Code ausführen, wird das Dialogfeld Datei öffnen angezeigt.

Wenn Sie dann auf Abbrechen klicken, tritt der Fehler auf.

Die folgende Fehlerfalle wird den Code zur Exit-Funktion des Codes fortsetzen und eine Nachricht zurückgeben.

Dies verwendet On Error GoTo, um die Funktion zu beenden.

Wenn Sie den Code ausführen und auf Abbrechen klicken, wird das Meldungsfeld angezeigt.

Bei Fehler Fortsetzen als nächstes

Wenn Sie die Bei Fehler Fortsetzen als nächstes Anweisung in Ihren Code wird die Zeile, die den Fehler enthält, ignoriert und der Code wird fortgesetzt.

Wenn der Benutzer beispielsweise im folgenden Code auf Abbrechen klickt, gibt der Code keinen Laufzeitfehler aus, sondern wird einfach beendet, ohne dass der Code weitere Schritte einleitet.

Dies ist manchmal sehr nützlich, kann aber unter Umständen auch sehr gefährlich sein, da keine Meldung zurückgegeben wird, warum Sie einen Fehler erhalten haben.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave