Ein Tutorial für Anfänger zum Schreiben von VBA-Makros in Excel (und warum Sie lernen sollten)

Ein Tutorial für Anfänger zum Schreiben von VBA-Makros in Excel (und warum Sie lernen sollten)

Excel-Makros können Ihnen eine Menge Zeit sparen, indem Sie Automatisierung von Excel-Prozessen, die Sie häufig verwenden . Aber Makros sind eigentlich ziemlich begrenzt. Es ist leicht, mit dem Aufnahmetool einen Fehler zu machen, und der Aufnahmeprozess ist umständlich.





Die Verwendung von VBA zum Erstellen von Makros gibt Ihnen viel mehr Möglichkeiten. Sie können Excel genau sagen, was zu tun ist und wie es zu tun ist. Sie erhalten auch Zugriff auf viele weitere Funktionen und Fähigkeiten. Wenn Sie Excel regelmäßig verwenden, lohnt es sich zu lernen, wie Sie VBA-Makros erstellen.





Wir beginnen mit den Grundlagen.





Was ist VBA?

VBA ist Visual Basic für Anwendungen , eine Programmiersprache, die Sie in vielen Microsoft-Apps verwenden können. Visual Basic ist eine Programmiersprache und VBA ist die anwendungsspezifische Version davon. (Microsoft hat Visual Basic bereits 2008 eingestellt, aber VBA ist immer noch stark).

Zum Glück für Nicht-Programmierer ist VBA sehr einfach, und die Benutzeroberfläche, mit der Sie es bearbeiten, bietet viel Unterstützung. Viele der Befehle, die Sie verwenden, enthalten Popup-Vorschläge und automatische Vervollständigungen, damit Ihr Skript schnell funktioniert.



Trotzdem dauert es eine Weile, bis sich VBA daran gewöhnt hat.

Die Vorteile von VBA-Makros in Excel

Wenn VBA schwieriger ist als das Aufzeichnen eines Makros, warum sollten Sie es dann verwenden? Die kurze Antwort ist, dass Sie viel mehr Leistung aus VBA-Makros herausholen.





Anstatt in Ihrer Tabelle herumzuklicken und diese Klicks aufzuzeichnen, können Sie auf den vollen Funktionsumfang von Excel zugreifen. Sie müssen nur wissen, wie man sie benutzt.

So setzen Sie Windows 10 ohne Einstellungen auf die Werkseinstellungen zurück

Und sobald Sie mit VBA vertraut sind, können Sie all die Dinge, die Sie in einem normalen Makro tun könnten, in viel kürzerer Zeit erledigen. Die Ergebnisse werden auch vorhersehbarer sein, wie Sie Excel sagen Exakt was ist zu tun. Es gibt überhaupt keine Zweideutigkeit.





Nachdem Sie Ihr VBA-Makro erstellt haben, können Sie es ganz einfach speichern und freigeben, damit alle anderen es nutzen können. Dies ist besonders nützlich, wenn Sie mit vielen Personen zusammenarbeiten, die in Excel dieselben Aufgaben ausführen müssen.

Schauen wir uns ein einfaches VBA-Makro an, um zu sehen, wie es funktioniert.

Ein Beispiel für ein VBA-Makro in Excel

Schauen wir uns ein einfaches Makro an. Unsere Tabelle enthält die Namen der Mitarbeiter, die Nummer des Geschäfts, in dem die Mitarbeiter arbeiten, und ihre vierteljährlichen Umsätze.

Dieses Makro fügt die vierteljährlichen Verkäufe von jedem Geschäft hinzu und schreibt diese Summen in die Zellen in der Tabelle (wenn Sie nicht sicher sind, wie Sie auf das VBA-Dialogfeld zugreifen, sehen Sie sich an unsere VBA-Komplettlösung hier ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Das mag lang und kompliziert aussehen, aber wir werden es aufschlüsseln, damit Sie die einzelnen Elemente sehen und etwas über die Grundlagen von VBA lernen können.

Deklaration der Sub

Am Anfang des Moduls haben wir 'Sub StoreSales()'. Dies definiert ein neues Unter namens StoreSales.

Sie können auch Funktionen definieren – der Unterschied besteht darin, dass Funktionen Werte zurückgeben können und Subs nicht (wenn Sie mit anderen Programmiersprachen vertraut sind, sind Subs das Äquivalent zu Methoden). In diesem Fall müssen wir keinen Wert zurückgeben, daher verwenden wir einen Sub.

Am Ende des Moduls haben wir 'End Sub', das Excel mitteilt, dass wir mit diesem VBA-Makro fertig sind.

Variablen deklarieren

Die ersten Codezeilen in unserem Skript beginnen alle mit 'Dim'. Dim ist der Befehl von VBA zum Deklarieren einer Variablen.

'Dim Sum1' erstellt also eine neue Variable namens 'Sum1'. Wir müssen Excel jedoch mitteilen, um welche Art von Variable es sich handelt. Wir müssen einen Datentyp auswählen. Es gibt viele verschiedene Datentypen in VBA --- Sie finden die vollständige Liste in den Hilfedokumenten von Microsoft .

Da sich unser VBA-Makro mit Währungen beschäftigt, verwenden wir den Datentyp Währung.

Die Anweisung 'Dim Sum1 As Currency' weist Excel an, eine neue Währungsvariable namens Sum1 zu erstellen. Jede Variable, die Sie deklarieren, muss eine 'As'-Anweisung haben, um Excel ihren Typ mitzuteilen.

Starten einer For-Schleife

Schleifen sind einige der mächtigsten Dinge, die Sie in jeder Programmiersprache erstellen können. Wenn Sie mit Schleifen nicht vertraut sind, lesen Sie diese Erklärung zu Do-While-Schleifen . In diesem Beispiel verwenden wir eine For-Schleife, die ebenfalls im Artikel behandelt wird.

So sieht die Schleife aus:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Dies weist Excel an, die Zellen in dem von uns angegebenen Bereich zu durchlaufen. Wir haben a . verwendet Bereichsobjekt , ein spezieller Objekttyp in VBA. Wenn wir es auf diese Weise verwenden ---Range('C2:C51') --- teilt es Excel mit, dass wir an diesen 50 Zellen interessiert sind.

'Für jeden' teilt Excel mit, dass wir mit jeder Zelle im Bereich etwas tun werden. 'Nächste Zelle' kommt nach allem, was wir tun möchten, und weist Excel an, die Schleife von vorne zu beginnen (beginnend mit der nächsten Zelle).

Wir haben auch diese Anweisung: 'If IsEmpty(Cell) Then Exit For.'

Können Sie erraten, was es tut?

Notiz: Genau genommen, Die Verwendung einer While-Schleife wäre möglicherweise die bessere Wahl gewesen . Aus Gründen des Lehrens habe ich mich jedoch entschieden, eine For-Schleife mit einem Exit zu verwenden.

So erstellen Sie einen Screenshot auf Android

Wenn-dann-sonst-Anweisungen

Der Kern dieses speziellen Makros liegt in den If-Then-Else-Anweisungen. Hier ist unsere Folge von bedingten Anweisungen:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Zum größten Teil können Sie wahrscheinlich erraten, was diese Aussagen bewirken. Möglicherweise kennen Sie ActiveCell.Offset jedoch nicht. 'ActiveCell.Offset(0, -1)' weist Excel an, sich die Zelle anzusehen, die sich eine Spalte links von der aktiven Zelle befindet.

In unserem Fall weist Excel an, die Spalte mit der Geschäftsnummer zu konsultieren. Wenn Excel in dieser Spalte eine 1 findet, nimmt es den Inhalt der aktiven Zelle und fügt ihn zu Sum1 hinzu. Wenn es eine 2 findet, fügt es den Inhalt der aktiven Zelle zu Sum2 hinzu. Und so weiter.

Excel geht alle diese Anweisungen der Reihe nach durch. Wenn die bedingte Anweisung erfüllt ist, vervollständigt es die Then-Anweisung. Wenn nicht, wird es in das nächste ElseIf verschoben. Wenn es bis zum Ende reicht und keine der Bedingungen erfüllt ist, wird keine Aktion ausgeführt.

Die Kombination aus Schleife und Bedingung ist das, was dieses Makro antreibt. Die Schleife weist Excel an, jede Zelle in der Auswahl zu durchlaufen, und die Bedingungen sagen ihm, was mit dieser Zelle zu tun ist.

Zellenwerte schreiben

Schließlich können wir die Ergebnisse unserer Berechnungen in Zellen schreiben. Hier sind die Zeilen, die wir dafür verwenden:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Mit '.Value' und einem Gleichheitszeichen setzen wir jede dieser Zellen auf den Wert einer unserer Variablen.

Und das ist es! Wir sagen Excel, dass wir mit dem Schreiben dieses Subs mit 'End Sub' fertig sind und das VBA-Makro abgeschlossen ist.

Wenn wir das Makro mit dem ausführen Makros Knopf im Entwickler tab, erhalten wir unsere Summen:

Zusammensetzen der Bausteine ​​von VBA in Excel

Wenn Sie sich das obige VBA-Makro zum ersten Mal ansehen, sieht es ziemlich komplex aus. Aber nachdem man es in seine Bestandteile zerlegt hat, wird die Logik klar. Wie bei jeder Skriptsprache braucht es Zeit, sich an die Syntax von VBA zu gewöhnen.

Aber mit etwas Übung werden Sie Ihr VBA-Vokabular aufbauen und in der Lage sein, Makros schneller, genauer und mit viel mehr Leistung zu schreiben, als Sie sie jemals aufzeichnen könnten.

Wenn Sie nicht weiterkommen, können Sie Ihre VBA-Fragen schnell mit einer Google-Suche beantworten. Und Microsofts Excel VBA-Referenz kann hilfreich sein, wenn Sie bereit sind, nach einer technischen Antwort zu suchen.

Sobald Sie mit den Grundlagen vertraut sind, können Sie VBA für Dinge verwenden wie Senden von E-Mails aus Excel , Exportieren von Outlook - Aufgaben und Anzeigen Ihrer PC - Informationen .

So reduzieren Sie die Größe der PDF-Datei für den Mac
Teilen Teilen Tweet Email Hier ist der Grund, warum das FBI eine Warnung vor Hive Ransomware herausgegeben hat

Das FBI warnte vor einem besonders bösartigen Ransomware-Stamm. Aus diesem Grund müssen Sie bei Hive-Ransomware besonders vorsichtig sein.

Weiter lesen
Verwandte Themen
  • Produktivität
  • Kalkulationstabelle
  • Microsoft Excel
  • Microsoft Office 2016
  • Makros
  • Codierungs-Tutorials
Über den Autor Dann Albright(506 veröffentlichte Artikel)

Dann ist ein Content-Strategie- und Marketingberater, der Unternehmen dabei unterstützt, Nachfrage und Leads zu generieren. Er bloggt auch über Strategie und Content Marketing auf dannalbright.com.

Mehr von Dann Albright

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren