4 Fehler, die Sie beim Programmieren von Excel-Makros mit VBA vermeiden sollten

4 Fehler, die Sie beim Programmieren von Excel-Makros mit VBA vermeiden sollten

Microsoft Excel ist bereits ein leistungsfähiges Datenanalysetool, aber mit der Möglichkeit, sich wiederholende Aufgaben mit Makros zu automatisieren, indem man einfachen Code in Visual Basic for Applications (VBA) schreibt, ist es viel leistungsfähiger. Bei falscher Anwendung kann VBA jedoch Probleme verursachen.





Auch wenn Sie kein Programmierer sind, bietet VBA einfache Funktionen, mit denen Sie Ihren Tabellenkalkulationen beeindruckende Funktionen hinzufügen können.





Es spielt keine Rolle, ob Sie ein VBA-Guru sind, der Dashboards in Excel erstellt, oder ein Neuling, der einfache Skripte schreibt, die grundlegende Zellenberechnungen durchführen. Befolgen Sie diese einfachen Programmiertechniken, um zu lernen, wie man sauberen, fehlerfreien Code schreibt.





Erste Schritte mit VBA

VBA kann alle möglichen netten Dinge für Sie erledigen. Vom Schreiben von Makros, die Blätter ändern, bis hin zu Senden von E-Mails aus einer Excel-Tabelle mit VBA-Skripten Ihrer Produktivität sind kaum Grenzen gesetzt.

Wenn Sie in Excel noch nicht in VBA programmiert haben, müssen Sie die Entwicklertools in Ihrem Excel-Programm aktivieren. Die gute Nachricht ist, dass das Aktivieren der Entwicklertools eigentlich ziemlich einfach ist. Geh einfach zu Datei > Optionen und dann Menüband anpassen . Verschiebe einfach die Entwickler Tab vom linken Fenster nach rechts.



Stellen Sie sicher, dass das Kontrollkästchen diese Registerkarte aktiviert hat, und jetzt wird die Registerkarte Entwickler in Ihrem Excel-Menü angezeigt.

Der einfachste Weg, um von hier aus in das Code-Editor-Fenster zu gelangen, ist einfach auf das zu klicken Code anzeigen Knopf unter Kontrollen im Entwicklermenü.





Sie können jetzt VBA-Code schreiben! Auf dieser Registerkarte greifen Sie sowohl auf VBA zu als auch auf Makros in Excel aufzeichnen . Nun, da Excel einsatzbereit ist, lassen Sie uns einige häufige Fehler durchgehen, die Sie vermeiden sollten, und die Möglichkeiten, sie zu vermeiden.

1. Schreckliche Variablennamen

Nun, da Sie sich im Codefenster befinden, ist es an der Zeit, mit dem Schreiben von VBA-Code zu beginnen. Der erste wichtige Schritt in den meisten Programmen, egal ob in VBA oder einer anderen Sprache, besteht darin, Ihre Variablen zu definieren. Variablen nicht richtig zu benennen ist einer der häufigsten Programmierfehler, die neue Entwickler machen.





Xbox One Controller Fire TV Stick

In meinen Jahrzehnten des Schreibens von Code bin ich auf viele Denkschulen gestoßen, wenn es um Namenskonventionen für Variablen geht, und habe einige Regeln auf die harte Tour gelernt. Hier sind einige schnelle Tipps zum Erstellen von Variablennamen:

  • Machen Sie sie so kurz wie möglich.
  • Machen Sie sie so beschreibend wie möglich.
  • Stellen Sie ihnen den Variablentyp voran (Boolean, Integer, etc...).

Hier ist ein Beispiel-Screenshot aus einem Programm, das ich häufig verwende, um WMIC Windows-Aufrufe aus Excel zu tätigen, um PC-Informationen zu sammeln.

Wenn Sie die Variablen innerhalb einer Funktion innerhalb des Moduls oder Objekts verwenden möchten (ich werde dies weiter unten erklären), müssen Sie sie als 'öffentliche' Variable deklarieren, indem Sie der Deklaration mit voranstellen Öffentlich . Andernfalls werden Variablen deklariert, indem ihnen das Wort vorangestellt wird Keiner .

Wie Sie sehen können, ist die Variable, wenn es sich um eine Ganzzahl handelt, mit vorangestellt int . Wenn es eine Zeichenfolge ist, dann P . Dies ist eine persönliche Präferenz, die später beim Programmieren hilft, da Sie immer wissen, welche Art von Daten die Variable enthält, indem Sie auf den Namen blicken.

Achten Sie auch darauf, die Blätter in Ihrer Excel-Arbeitsmappe zu benennen.

Auf diese Weise beziehen Sie sich auf einen sinnvollen Namen, wenn Sie in Ihrem Excel-VBA-Code auf den Blattnamen verweisen. Im obigen Beispiel habe ich ein Blatt, in das ich Netzwerkinformationen einfüge, also nenne ich das Blatt 'Netzwerk'. Jedes Mal, wenn ich auf das Netzwerkblatt verweisen möchte, kann ich dies schnell tun, ohne nachzusehen, welche Blattnummer es ist.

2. Breaking statt Looping

Eines der häufigsten Probleme neuer VBA-Programmierer beim Schreiben von Code ist der richtige Umgang mit Schleifen.

Schleifen sind in Excel sehr verbreitet, da Sie Datenwerte oft in einer ganzen Zeile oder Spalte verarbeiten, sodass Sie eine Schleife ausführen müssen, um alle zu verarbeiten.

Neue Programmierer möchten oft einfach sofort aus einer Schleife (VBA For-Schleifen oder VBA Do While-Schleifen) ausbrechen, wenn eine bestimmte Bedingung zutrifft.

Hier ist ein Beispiel für diese Methode, die verwendet wird, um eine VBA-Schleife zu unterbrechen.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Neue Programmierer wählen diesen Ansatz, weil er einfach ist. Versuchen Sie, eine Schleife nicht explizit zu unterbrechen.

In den meisten Fällen ist es wichtig, den Code, der nach dieser „Pause“ kommt, zu verarbeiten. Eine viel sauberere und professionellere Möglichkeit, Bedingungen zu handhaben, bei denen Sie eine Schleife auf halbem Weg verlassen möchten, besteht darin, diese Exit-Bedingung einfach in so etwas wie eine VBA-While-Anweisung aufzunehmen.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Dies ermöglicht einen logischen Fluss Ihres Codes. Jetzt durchläuft der Code eine Schleife und stoppt, sobald er 6 erreicht. Es müssen keine umständlichen EXIT- oder BREAK-Befehle mitten in der Schleife eingefügt werden.

3. Keine Arrays verwenden

Ein weiterer interessanter Fehler, den neue VBA-Programmierer machen, ist der Versuch, alles innerhalb zahlreicher verschachtelter Schleifen zu verarbeiten, die während des Berechnungsprozesses durch Zeilen und Spalten filtern.

Dies kann auch zu erheblichen Performance-Problemen führen. Das Durchlaufen einer Spalte und das Extrahieren der Werte jedes Mal ist ein Killer für Ihren Prozessor. Eine effizientere Möglichkeit, lange Zahlenlisten zu handhaben, ist die Verwendung eines Arrays.

Wenn Sie noch nie ein Array verwendet haben, haben Sie keine Angst. Stellen Sie sich ein Array als Eiswürfelbehälter mit einer bestimmten Anzahl von 'Würfeln' vor, in die Sie Informationen eingeben können. Die Würfel sind von 1 bis 12 nummeriert, und auf diese Weise „fügt“ man Daten in sie ein.

Sie können ganz einfach ein Array definieren, indem Sie einfach eingeben Dim arrMyArray(12) als Integer .

So zeigen Sie Instagram-Fotos ohne Konto an

Dadurch entsteht ein „Tablett“ mit 12 Plätzen, die Sie auffüllen können.

So könnte ein Zeilenschleifencode ohne Array aussehen:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

In diesem Beispiel verarbeitet der Code jede einzelne Zelle im Bereich und führt die Temperaturberechnung durch.

Wenn Sie jemals eine andere Berechnung mit denselben Werten durchführen möchten, wäre der Prozess umständlich. Sie müssten diesen Code duplizieren, alle diese Zellen durchlaufen und Ihre neue Berechnung durchführen. Alles für eine Veränderung!

Hier ist ein besseres Beispiel mit einem Array. Zuerst erstellen wir das Array.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

Die x-1 zum Zeigen auf das Array-Element ist nur notwendig, weil die For-Schleife bei 1 beginnt. Array-Elemente müssen bei 0 beginnen.

Jetzt, da Sie das Array haben, ist es sehr einfach, den Inhalt zu verarbeiten.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Dieses Beispiel durchläuft das gesamte Zeilenarray ( UBound gibt Ihnen die Anzahl der Datenwerte im Array), führt die Temperaturberechnung durch und legt sie dann in ein anderes Array namens arrMyTemps .

4. Zu viele Referenzen verwenden

Unabhängig davon, ob Sie in vollwertigem Visual Basic oder VBA programmieren, müssen Sie 'Referenzen' einfügen, um auf bestimmte Funktionen zugreifen zu können.

Referenzen sind eine Art 'Bibliotheken', die mit Funktionen gefüllt sind, auf die Sie zugreifen können, wenn Sie diese Datei aktivieren. Sie finden Referenzen in der Entwickleransicht, indem Sie auf klicken Werkzeuge im Menü und dann auf klicken Verweise .

In diesem Fenster finden Sie alle aktuell ausgewählten Referenzen für Ihr aktuelles VBA-Projekt.

Sie sollten diese Liste überprüfen, da unnötige Verweise Systemressourcen verschwenden können. Wenn Sie keine XML-Dateimanipulation verwenden, warum sollten Sie dann Microsoft XML ausgewählt lassen? Wenn Sie nicht mit einer Datenbank kommunizieren, entfernen Sie Microsoft DAO usw.

Wenn Sie sich nicht sicher sind, was diese ausgewählten Referenzen bewirken, drücken Sie F2 und Sie sehen den Objekt-Explorer. Oben in diesem Fenster können Sie die zu durchsuchende Referenzbibliothek auswählen.

Nach der Auswahl sehen Sie alle Objekte und verfügbaren Funktionen, die Sie anklicken können, um mehr darüber zu erfahren.

Wenn ich zum Beispiel auf die DAO-Bibliothek klicke, wird schnell klar, dass es hier um die Verbindung zu und die Kommunikation mit Datenbanken geht.

Die Reduzierung der Anzahl der Referenzen, die Sie in Ihrem Programmierprojekt verwenden, ist nur sinnvoll und trägt dazu bei, dass Ihre gesamte Anwendung effizienter läuft.

So erstellen Sie eine kostenlose Chat-Website

Programmierung in Excel VBA

Die ganze Idee, Code tatsächlich in Excel zu schreiben, macht vielen Leuten Angst, aber diese Angst ist wirklich nicht notwendig. Visual Basic für Applikationen ist eine sehr einfach zu erlernende Sprache, und wenn Sie die oben genannten grundlegenden allgemeinen Vorgehensweisen befolgen, stellen Sie sicher, dass Ihr Code sauber, effizient und leicht verständlich ist.

Hören Sie hier aber nicht auf. Bauen Sie mit a . eine solide Grundlage für Excel-Kenntnisse auf VBA-Tutorial für Anfänger . Dann lernen Sie mehr über VBA und Makros mit Ressourcen, die Ihnen bei der Automatisierung Ihrer Tabellenkalkulationen helfen.

Teilen Teilen Tweet Email Lohnt sich ein Upgrade auf Windows 11?

Windows wurde neu gestaltet. Aber reicht das aus, um Sie davon zu überzeugen, von Windows 10 auf Windows 11 umzusteigen?

Weiter lesen
Verwandte Themen
  • Produktivität
  • Programmierung
  • Programmierung
  • Visual Basic-Programmierung
  • Microsoft Excel
Über den Autor Anthony Grant(40 veröffentlichte Artikel)

Anthony Grant ist ein freiberuflicher Autor für Programmierung und Software. Er ist ein Informatik-Major und beschäftigt sich mit Programmierung, Excel, Software und Technologie.

Mehr von Anthony Grant

Abonniere unseren Newsletter

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

Klicken Sie hier, um zu abonnieren