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.
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]->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 rngIf 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 + 2If 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.
In diesem Fall würden Sie t neu schreiben Die While-Schleife oben ist wie folgt als Do-While-Schleife.
DoIf 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 rngSelect 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.