Der beste VBA-Leitfaden (für Anfänger), den Sie jemals brauchen werden


Die Plattform VBA-Programmierung, die in nahezu allen Microsoft Office-Produkten ausgeführt wird, ist eines der leistungsstärksten Tools, mit denen jeder die Verwendung dieser Produkte verbessern kann.

Dieses VBA-Handbuch für Anfänger erfahren, wie Sie das Developer-Menü zu Ihrer Office-Anwendung hinzufügen, wie Sie das VBA-Editor-Fenster öffnen und wie grundlegende VBA-Anweisungen und Schleifen funktionieren, damit Sie VBA in Excel, Word, Powerpoint, Outlook und OneNote verwenden können

Dies Das VBA-Handbuch verwendet die neueste Version von Microsoft Office-Produkten. Wenn Sie eine frühere Version haben, sehen Sie möglicherweise geringfügige Unterschiede zu den Screenshots.

Aktivieren und Verwenden des VBA-Editors

In jedem Office Bei den in diesem Handbuch verwendeten Produkten stellen Sie möglicherweise fest, dass Sie nicht über das entsprechende Entwicklermenü verfügen. Das Entwicklermenü ist nur in Excel, Word, Outlook und Powerpoint verfügbar. OneNote bietet kein Tool zum Bearbeiten von VBA-Code aus der Anwendung heraus. Sie können jedoch auf die OneNote-API verweisen, um mit OneNote aus anderen Office-Programmen zu interagieren.

Weitere Informationen hierzu finden Sie in unserem nächsten Advanced VBA-Handbuch.

  • Um das Entwicklermenü in einem beliebigen Office-Produkt zu aktivieren, wählen Sie die Option Dateidie Option Optionenaus dem linken Navigationsmenü.
  • Es wird ein Popup-Menü mit Optionen angezeigt. Wählen Sie im linken Navigationsmenü Menüband anpassenaus.
  • Die linke Liste enthält alle verfügbaren Menüs und Menübefehle, die in dieser Office-Anwendung verfügbar sind. Die Liste auf der rechten Seite enthält die derzeit verfügbaren oder aktivierten.

    In_content_1 all: [300x250] / dfp: [640x360]->
    • Sie sollten Developer in der Liste auf der rechten Seite sehen, aber es wird nicht aktiviert. Aktivieren Sie einfach das Kontrollkästchen, um das Entwicklermenü zu aktivieren.
      • Wenn rechts kein Entwicklerverfügbar ist, ändern Sie das Feld Befehle auswählenvon Dropdown in Alle Befehle:Suchen Sie in der Liste nach Entwicklerund wählen Sie in der Mitte Hinzufügen, um dieses Menü zum Menüband hinzuzufügen.
      • Wählen Sie OKWenn Sie fertig sind.
      • Sobald das Entwicklermenü aktiv ist, können Sie zum Hauptanwendungsfenster zurückkehren und im oberen Menü Entwicklerauswählen.
      • Wählen Sie dann in der Multifunktionsleiste in der Gruppe Steuerelemente die Option Code anzeigenaus, um das VBA-Editorfenster zu öffnen.
        • Dies öffnet das VBA-Editorfenster, in dem Sie den Code eingeben können, den Sie in den nächsten Abschnitten lernen werden.
          • Fügen Sie das Developer-Menü zu einigen Office-Anwendungen hinzu, die Sie täglich verwenden . Wenn Sie das VBA-Editorfenster problemlos öffnen können, fahren Sie mit dem nächsten Abschnitt dieses Handbuchs fort.
          • Allgemeine VBA-Programmiertipps für Anfänger

            Beim Öffnen des VBA-Editors werden Sie feststellen, dass die Navigationsoptionen im linken Bereich von einer Office-Anwendung zur anderen unterschiedlich aussehen.

            Dies liegt daran, dass die verfügbaren Objekte, in denen Sie VBA-Code platzieren können, davon abhängen, welche Objekte sich in der Anwendung befinden. In Excel können Sie beispielsweise Arbeitsmappen- oder Blattobjekten VBA-Code hinzufügen. In Word können Sie Dokumenten VBA-Code hinzufügen. In Powerpoint nur für Module.

            Lassen Sie sich also nicht von den verschiedenen Menüs überraschen. Die Struktur und Syntax des VBA-Codes ist in allen Anwendungen gleich. Der einzige Unterschied besteht in den Objekten, auf die Sie verweisen können, und in den Aktionen, die Sie über den VBA-Code für diese Objekte ausführen können Informieren Sie sich über die gebräuchlichste VBA-Struktur und -Syntax, die Sie beim Schreiben von VBA-Code verwenden können.

            Speicherort von VBA-Code

            Im VBA-Editor müssen Sie in den beiden Dropdown-Feldern oben im Bearbeitungsfenster auswählen, an welches Objekt Sie den Code anhängen möchten und wann der Code ausgeführt werden soll.

            Zum Beispiel in Excel: Wenn Sie Arbeitsblattund Aktivierenauswählen, wird der Code beim Öffnen des Arbeitsblatts ausgeführt.

            Anderes Arbeitsblatt Zu den Aktionen, die Sie zum Auslösen Ihres VBA-Codes verwenden können, gehören, wenn sich das Arbeitsblatt ändert, wenn es geschlossen (deaktiviert) ist, wenn die Arbeitsblattberechnung ausgeführt wird usw.

            Wenn Sie VBA-Code im Editor hinzufügen, führen Sie immer Folgendes aus Stellen Sie sicher, dass Sie Ihren VBA-Code auf dem Objekt platzieren und die richtige Aktion verwenden, mit der Sie diesen Code auslösen möchten.

            VBA-IF-Anweisungen

            Eine IF Die Anweisung funktioniert in VBA genauso wie in jeder anderen Programmiersprache.

            Im ersten Teil der IF-Anweisung wird untersucht, ob eine Bedingung oder ein Bedingungssatz wahr ist. Diese Bedingungen können durch einen UND- oder ODER-Operator verknüpft werden, um sie miteinander zu verknüpfen.

            Ein Beispiel wäre, zu überprüfen, ob eine Note in einer Tabelle über oder unter einer „bestandenen“ Note liegt, und den bestandenen oder zuzuweisen Fail-Status für eine andere Zelle.

            Wenn Zellen (2, 2)>75, dann Zellen (2, 3) = "Bestanden". Anderenfalls Zellen (2, 3) = "Nicht bestanden"

            Wenn Sie nicht möchten, dass die gesamte Anweisung in einer einzelnen Zeile steht, können Sie sie in mehrere Zeilen aufteilen, indem Sie am Ende der Zeilen ein "_" -Symbol einfügen.

            If Cells (2, 2)>75 Then _
            Cells (2, 3) = "Pass" Else _
            Cells (2, 3) = "Fail"

            Mit dieser Technik lässt sich Code häufig einfacher lesen und debuggen.

            VBA für nächste Schleifen

            IF-Anweisungen eignen sich hervorragend für Einzelvergleiche, wie im obigen Beispiel für die Betrachtung einer einzelnen Zelle. Aber was ist, wenn Sie eine Schleife durch einen ganzen Zellbereich ausführen möchten und für jedes die gleiche IF-Anweisung ausführen möchten?

            In diesem Fall benötigen Sie eine FOR-Schleife.

            Dazu müssen Sie die Länge eines Bereichs verwenden und diese Länge in der Anzahl der Zeilen durchlaufen, die Daten enthalten.

            Dazu benötigen Sie Definieren Sie den Bereich und die Zellenvariablen und durchlaufen Sie diese. Sie müssen auch einen Zähler definieren, damit Sie die Ergebnisse in der entsprechenden Zeile ausgeben können. Ihr VBA-Code würde also zuerst diese Zeile haben.

            Als Bereich dimmen, Zelle als Bereich
            Dimmen Sie rowCounter als Ganzzahl

            Definieren Sie die Bereichsgröße wie folgt.

            Setze rng = Range ("B2: B7")
            rowCounter = 2

            Schließlich können Sie erstellen Durchlaufen Sie mit Ihrer FOR-Schleife jede Zelle in diesem Bereich und führen Sie den Vergleich durch.

            For Each cell In rng
            If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell

            Sobald diese VBA-Skript ausgeführt wird, wird das Symbol angezeigt führt zur aktuellen Tabelle.

            VBA-While-Schleifen

            Eine While-Schleife durchläuft genau wie die FOR-Schleife auch eine Reihe von Anweisungen, aber die Bedingung für die Fortsetzung der Schleife ist eine verbleibende Bedingung true.

            Sie können beispielsweise dieselbe FOR-Schleife wie eine WHILE-Schleife schreiben, indem Sie einfach die rowCounter-Variable wie folgt verwenden.

            While rowCounter < rng.Count + 2
            If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

            Hinweis: Das rng.Count + 2Abschlusslimit ist erforderlich, da der Zeilenzähler bei 2 beginnt und in Zeile 7 enden muss, in der die Daten enden. Der Zählwert des Bereichs (B2: B7) beträgt jedoch nur 6, und die While-Schleife endet erst, wenn der Zähler GRÖSSER als der Zähler ist. Daher muss der letzte rowCounter-Wert 8 (oder rng.Count + 2) sein.

            Sie können die While-Schleife auch wie folgt einrichten:

            While rowCounter <= rng.Count + 1

            Das können Sie Erhöhen Sie die Bereichsanzahl (6) nur um 1, da die Schleife enden kann, sobald die rowCounter-Variable das Ende der Daten erreicht (Zeile 7).

            VBA Do While und Do Until Loops

            Do While- und Do Until-Schleifen sind nahezu identisch mit While-Schleifen, funktionieren jedoch geringfügig anders.

            • Die While-Schleifeprüft, ob Eine Bedingung ist am Anfang der Schleife wahr.
            • Die Do-While-Schleifeüberprüft, ob eine Bedingung wahr ist, nachdem die Anweisungen in der Schleife ausgeführt wurden.
            • Die Do-Until-Schleifeprüft, ob eine Bedingung nach dem Ausführen der Schleife immer noch falsch ist.
            • In diesem Fall würden Sie t neu schreiben Die While-Schleife oben ist wie folgt als Do-While-Schleife.

              Do
              If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

              In diesem Fall ändert sich die Logik nicht sehr, aber wenn Sie sicherstellen möchten, dass die Logik stimmt Der Vergleich findet statt, nachdem alle Anweisungen ausgeführt wurden (sodass sie alle mindestens einmal ausgeführt werden können). Dann ist eine Do-While- oder Do-Until-Schleife die richtige Option.

              VBA-Select-Case-Anweisungen

              Die letzte Art logischer Anweisungen, die Sie verstehen müssen, um mit der Strukturierung Ihres VBA-Codes zu beginnen, sind Select-Case-Anweisungen.

              Nehmen wir an, Sie möchten im obigen Beispiel eine Bewertungsmethode verwenden, die nicht nur „bestanden, nicht bestanden“ ist. Stattdessen möchten Sie eine Buchstabennote von A bis F zuweisen.

              Sie können dies mit der folgenden Select Case-Anweisung tun:

              For Each cell In rng
              Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell

              Die resultierende Tabelle Nachdem dieses VBA-Skript ausgeführt wurde, sieht es so aus:

              Jetzt wissen Sie alles, was Sie wissen müssen, um VBA in Ihren Microsoft Office-Anwendungen zu verwenden.

              Zusammenhängende Posts:


              29.01.2020