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

Die VBA-Programmierplattform(VBA programming) , die in fast allen Microsoft Office- Produkten ausgeführt wird, ist eines der leistungsstärksten Tools, mit denen jeder die Nutzung dieser Produkte verbessern kann.

Dieser VBA -Leitfaden für Anfänger zeigt Ihnen, wie Sie das Entwicklermenü(Developer) zu Ihrer Office - Anwendung hinzufügen, wie Sie das VBA - Editorfenster aufrufen und wie grundlegende VBA- Anweisungen und -Schleifen funktionieren, damit Sie mit der Verwendung von VBA in Excel , Word , Powerpoint beginnen können. Outlook und OneNote .

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

So aktivieren und verwenden Sie den VBA-Editor(How To Enable & Use The VBA Editor)

In allen Office -Produkten, die in diesem Handbuch verwendet werden, stellen Sie möglicherweise fest, dass Sie nicht über das referenzierte Entwicklermenü(Developer) verfügen . Das Entwicklermenü ist nur in Excel , Word , Outlook und Powerpoint verfügbar . OneNote bietet kein Tool zum Bearbeiten von VBA -Code innerhalb der Anwendung, aber Sie können trotzdem auf die OneNote-API verweisen, um mit (OneNote API)OneNote aus anderen Office - Programmen  zu interagieren .

Wie das geht, erfahren Sie in unserem demnächst erscheinenden VBA-(Advanced VBA) Leitfaden für Fortgeschrittene.

  • Um das Entwicklermenü(Developer) in einem beliebigen Office-Produkt zu aktivieren, wählen Sie das Menü „ Datei(File) “ und dann im linken Navigationsmenü „  Optionen “.(Options)
  • Sie sehen ein Optionsmenü(Options) -Popup. Wählen Sie im linken Navigationsmenü Menüband anpassen aus .(Customize Ribbon)

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 diejenigen, die derzeit verfügbar oder aktiviert sind.

  • Sie sollten Developer in der Liste rechts sehen, aber es wird nicht aktiviert. Aktivieren Sie einfach(Just) das Kontrollkästchen, um das Entwicklermenü(Developer) zu aktivieren .

  • Wenn auf der rechten Seite Developer nicht verfügbar angezeigt wird, ändern Sie das linke Dropdown-Menü (Developer)Befehle(Choose commands) auswählen in Alle Befehle(All Commands) . Suchen Sie Entwickler(Developer) in der Liste und wählen Sie in der Mitte Add>> aus, um dieses Menü zur Multifunktionsleiste(Ribbon) hinzuzufügen .
  • Wählen Sie OK aus, wenn Sie fertig sind.
  • Sobald das Entwicklermenü(Developer) aktiv ist, können Sie zu Ihrem Hauptanwendungsfenster zurückkehren und Entwickler(Developer) aus dem oberen Menü auswählen. 
  • Wählen Sie dann Code(View Code) anzeigen aus der Gruppe Steuerelemente(Controls) im Menüband aus, um das Fenster des VBA - Editors zu öffnen.

  • Dadurch wird das Fenster des VBA -Editors geöffnet, in dem Sie den Code eingeben können, den Sie in den nächsten Abschnitten lernen werden.

  • Versuchen Sie, das Entwicklermenü(Developer) zu einigen der Office -Anwendungen hinzuzufügen, die Sie täglich verwenden. Sobald Sie das Fenster des VBA-(VBA) Editors öffnen können, fahren Sie mit dem nächsten Abschnitt dieses Handbuchs fort.

Allgemeine VBA-Programmiertipps für Anfänger(General VBA Programming Tips for Beginners)

Sie werden feststellen , dass die Navigationsoptionen im linken Bereich beim Öffnen des VBA -Editors von einer (VBA)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 in der Anwendung vorhanden sind. Beispielsweise können Sie in Excel VBA -Code zu Arbeitsmappen- oder Blattobjekten hinzufügen . In Word können Sie Dokumenten VBA -Code hinzufügen. In Powerpoint nur zu Modulen.

Wundern Sie sich also nicht über die verschiedenen Menüs. Die Struktur und Syntax des VBA -Codes ist in allen Anwendungen gleich. Der einzige Unterschied sind die Objekte, auf die Sie verweisen können, und die Aktionen, die Sie mit diesen Objekten über den VBA -Code ausführen können.

Bevor wir uns mit den verschiedenen Objekten und Aktionen befassen, die Sie über VBA -Code ausführen können, wollen wir uns zunächst die gebräuchlichste VBA - Struktur und -Syntax ansehen, die Sie beim Schreiben von VBA -Code verwenden können.

Wohin mit VBA-Code?(Where To Put VBA Code)

Wenn Sie sich im VBA -Editor befinden, müssen Sie die beiden Dropdown-Felder oben im Bearbeitungsfenster verwenden, um auszuwählen, an welches Objekt Sie den Code anhängen möchten und wann der Code ausgeführt werden soll.

Wenn Sie beispielsweise in Excel Arbeitsblatt(Worksheet) und Aktivieren(Activate) auswählen , wird der Code immer dann ausgeführt, wenn das Arbeitsblatt geöffnet wird. 

Andere Arbeitsblattaktionen, die Sie verwenden können, um Ihren VBA -Code auszulösen, umfassen, wenn sich das Arbeitsblatt ändert, wenn es geschlossen (deaktiviert) wird, wenn die Arbeitsblattberechnung ausgeführt wird und mehr.

Wenn Sie VBA -Code im Editor hinzufügen, stellen Sie immer sicher, dass Sie Ihren VBA -Code auf dem Objekt platzieren und die richtige Aktion verwenden, die Sie verwenden möchten, um diesen Code auszulösen.

VBA-IF-Anweisungen(VBA IF Statements)

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

Der erste Teil der IF-Anweisung untersucht, ob eine Bedingung oder eine Reihe von Bedingungen wahr ist. Diese Bedingungen können durch einen UND-(AND) 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 Status „bestanden“ oder „nicht bestanden“ einer anderen Zelle zuzuweisen.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Wenn Sie nicht die gesamte Anweisung in einer einzigen Zeile haben möchten, können Sie sie in mehrere Zeilen aufteilen, indem Sie am Ende der Zeilen ein „_“-Symbol hinzufügen.

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

Durch die Verwendung dieser Technik kann der Code oft viel einfacher zu lesen und zu debuggen sein.

VBA für nächste Schleifen(VBA For Next Loops)

IF-Anweisungen eignen sich hervorragend für einzelne Vergleiche, wie das obige Beispiel zum Betrachten einer einzelnen Zelle. Aber was ist, wenn Sie eine ganze Reihe von Zellen durchlaufen und für jede dieselbe IF-Anweisung ausführen möchten?

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

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

Dazu müssen Sie die Bereichs- und Zellenvariablen definieren und sie durchlaufen. Sie müssen auch einen Zähler definieren, damit Sie die Ergebnisse in der entsprechenden Zeile ausgeben können. Ihr VBA -Code hätte also zuerst diese Zeile.

Dim rng As Range, cell As Range
Dim rowCounter as Integer

Definieren Sie die Bereichsgröße wie folgt. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Schließlich können Sie Ihre FOR -Schleife erstellen, um jede Zelle in diesem Bereich schrittweise zu durchlaufen und den Vergleich durchzuführen.

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 dieses VBA-Skript(VBA script) ausgeführt wird, sehen Sie die Ergebnisse in der eigentlichen Tabelle.

VBA While-Schleifen(VBA While Loops)

Eine While - Schleife(Loop) durchläuft ebenso wie die FOR - Schleife eine Reihe von Anweisungen, aber die Bedingung für die Fortsetzung der Schleife ist eine Bedingung, die wahr bleibt.

Beispielsweise könnten Sie dieselbe FOR - Schleife oben als 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 + 2 ist erforderlich, da der Zeilenzähler bei 2 beginnt und in Zeile 7 enden muss, wo die Daten enden. Die Zählung des Bereichs (B2:B7) beträgt jedoch nur 6, und die While-Schleife endet erst, wenn der Zähler GRÖSSER(GREATER) 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

Sie können den Bereichszähler (6) nur um 1 erhöhen, da die Schleife beendet werden kann, sobald die rowCounter-Variable das Ende der Daten erreicht (Zeile 7).

VBA Do While- und Do Until-Schleifen(VBA Do While and Do Until Loops)

Do While- und Do Until-Schleifen sind fast identisch mit While-Schleifen, funktionieren aber etwas anders.

  • Die While-Schleife(While Loop) prüft, ob eine Bedingung zu Beginn der Schleife wahr ist.
  • Die Do-While-Schleife(Do-While Loop) prüft, ob eine Bedingung wahr ist, nachdem die Anweisungen in der Schleife ausgeführt wurden.
  • Die Do-Until-Schleife(Do-Until Loop) prüft, ob eine Bedingung nach Ausführung der Schleife immer noch falsch ist.

In diesem Fall würden Sie die While-Schleife wie folgt als Do-While-Schleife umschreiben.

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 der Logikvergleich stattfindet, nachdem alle Anweisungen ausgeführt wurden (so dass sie alle mindestens einmal ausgeführt werden können), dann ein Do-While oder Do-Until-Schleife ist die richtige Option.

VBA Select Case-Anweisungen(VBA Select Case Statements)

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

Nehmen wir anhand des obigen Beispiels an, Sie möchten eine Bewertungsmethode haben, die nicht nur „bestanden“ oder „nicht bestanden“ ist. Stattdessen möchten Sie eine Buchstabennote von A bis F zuweisen.

Sie könnten 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 nach Ausführung dieses VBA- Skripts sieht wie folgt aus.

Jetzt wissen Sie alles, was Sie wissen müssen, um mit der Verwendung von VBA in Ihren Microsoft Office- Anwendungen zu beginnen.



About the author

Ich bin Freeware-Softwareentwickler und Befürworter von Windows Vista/7. Ich habe mehrere hundert Artikel zu verschiedenen Themen rund um das Betriebssystem geschrieben, darunter Tipps und Tricks, Reparaturanleitungen und Best Practices. Über mein Unternehmen Help Desk Services biete ich auch bürobezogene Beratungsdienste an. Ich habe ein tiefes Verständnis dafür, wie Office 365 funktioniert, welche Funktionen es gibt und wie man sie am effektivsten einsetzt.



Related posts