Suche…


Bemerkungen

Dieser Abschnitt bietet einen Überblick über vBA und warum ein Entwickler sie verwenden möchte.

Es sollte auch alle großen Themen in vba erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für vba neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Versionen

Ausführung Office-Versionen Veröffentlichungsdatum Hinweise Veröffentlichungsdatum
Vba6 ? - 2007 [Irgendwann danach] [1] 1992-06-30
Vba7 2010 - 2016 [blog.techkit.com] [2] 2010-04-15
VBA für Mac 2004, 2011 - 2016 2004-05-11

Zugriff auf den Visual Basic-Editor in Microsoft Office

Sie können den VB-Editor in einer beliebigen Microsoft Office-Anwendung öffnen, indem Sie die Tastenkombination Alt + F11 drücken oder auf die Registerkarte "Entwickler" gehen und auf die Schaltfläche "Visual Basic" klicken. Wenn die Registerkarte "Entwickler" nicht im Menüband angezeigt wird, überprüfen Sie, ob diese Option aktiviert ist.

Standardmäßig ist die Registerkarte "Entwickler" deaktiviert. Um die Registerkarte "Entwickler" zu aktivieren, gehen Sie zu "Datei -> Optionen" und wählen Sie in der Liste links die Option "Farbband anpassen". Suchen Sie in der rechten Baumansicht "Multifunktionsleiste anpassen" das Element der Entwickler-Struktur und aktivieren Sie das Kontrollkästchen "Entwickler". Klicken Sie auf OK, um das Dialogfeld "Optionen" zu schließen.

Menü für Dateioptionen

Die Registerkarte "Entwickler" ist jetzt in der Multifunktionsleiste sichtbar, auf der Sie auf "Visual Basic" klicken können, um den Visual Basic-Editor zu öffnen. Alternativ können Sie auf "Code anzeigen" klicken, um direkt den Codebereich des gerade aktiven Elements anzuzeigen, z. B. WorkSheet, Diagramm, Form.

Entwickler Tab

VBE

Sie können VBA verwenden, um fast jede Aktion zu automatisieren, die interaktiv (manuell) ausgeführt werden kann, und Funktionen bereitzustellen, die in Microsoft Office nicht verfügbar sind. VBA kann ein Dokument erstellen, Text hinzufügen, formatieren, bearbeiten und speichern, ohne dass ein menschlicher Eingriff erforderlich ist.

Erstes Modul und Hallo Welt

Um mit der Codierung zu beginnen, müssen Sie mit der rechten Maustaste auf Ihr VBA-Projekt in der linken Liste klicken und ein neues Modul hinzufügen. Ihr erster Hello-World- Code könnte so aussehen:

Sub HelloWorld()
    MsgBox "Hello, World!"
End Sub

Um es zu testen, drücken Sie den Play- Button in Ihrer Toolbar oder drücken Sie einfach die F5- Taste. Herzliche Glückwünsche! Sie haben Ihr erstes eigenes VBA-Modul gebaut.

Debuggen

Debugging ist eine sehr effektive Methode, um einen genaueren Blick auf fehlerhaft funktionierenden (oder nicht funktionierenden) Code zu werfen.

Führen Sie den Code Schritt für Schritt aus

Beim Debuggen müssen Sie zunächst den Code an bestimmten Stellen anhalten und dann Zeile für Zeile ausführen, um zu sehen, ob dies erwartungsgemäß geschieht.

  • Haltepunkt ( F9 , Debug - Haltepunkt umschalten): Sie können jeder ausgeführten Zeile einen Haltepunkt hinzufügen (z. B. keine Deklarationen). Wenn die Ausführung diesen Punkt erreicht, stoppt sie und gibt dem Benutzer die Kontrolle.
  • Sie können das Stop Schlüsselwort auch zu einer leeren Zeile hinzufügen, damit der Code zur Laufzeit an dieser Stelle angehalten wird. Dies ist nützlich, wenn Sie z. B. vor Deklarationszeilen keinen Haltepunkt mit F9 hinzufügen können
  • Step into ( F8 , Debug - Step into): Führt nur eine Codezeile aus. Wenn dies ein Aufruf einer benutzerdefinierten Funktion ist, wird dies Zeile für Zeile ausgeführt.
  • Step over ( Umschalt + F8 , Debug - Step over): Führt eine Codezeile aus, gibt keine benutzerdefinierten Unterfunktionen ein.
  • Step out ( Strg + Shift + F8 , Debug - Step out): Aktuelle Sub / Funktion beenden (Code bis zum Ende ausführen).
  • Lauf zum Cursor ( Strg + F8 , Debug - Lauf zum Cursor): Code ausführen, bis die Zeile mit dem Cursor erreicht ist.
  • Mit Debug.Print können Debug.Print zur Laufzeit Zeilen in das Debug.Print drucken. Sie können auch Debug.? als Abkürzung für Debug.Print

Uhrenfenster

Das Ausführen von Code Zeile für Zeile ist nur der erste Schritt. Wir müssen mehr Details kennen. Ein Werkzeug dafür ist das Watch-Fenster (View - Watch-Fenster). Hier können Sie Werte definierter Ausdrücke sehen. So fügen Sie dem Überwachungsfenster eine Variable hinzu:

  • Klicken Sie mit der rechten Maustaste darauf und wählen Sie "Uhr hinzufügen".
  • Klicken Sie mit der rechten Maustaste in das Watch-Fenster und wählen Sie "Watch hinzufügen".
  • Gehe zu Debuggen - Watch hinzufügen.

Wenn Sie einen neuen Ausdruck hinzufügen, können Sie wählen, ob Sie nur den Wert anzeigen möchten oder die Codeausführung unterbrechen, wenn sie wahr ist oder wenn sich der Wert ändert.

Sofortiges Fenster

Im unmittelbaren Fenster können Sie beliebigen Code ausführen oder Elemente drucken, indem Sie ihnen entweder das Schlüsselwort " Print oder ein einzelnes Fragezeichen " ? "

Einige Beispiele:

  • ? ActiveSheet.Name - gibt den Namen des aktiven Blattes zurück
  • Print ActiveSheet.Name - gibt den Namen des aktiven Blattes zurück
  • ? foo - gibt den Wert von foo *
  • x = 10 Sätze x bis 10 *

* Das Abrufen / Setzen von Werten für Variablen über das Direktfenster ist nur zur Laufzeit möglich

Best Practices für das Debuggen

Wann immer Ihr Code nicht wie erwartet funktioniert, sollten Sie ihn zuerst sorgfältig lesen und nach Fehlern suchen.

Wenn das nicht hilft, beginnen Sie mit dem Debuggen. Bei kurzen Prozeduren kann es effizient sein, die Zeile nur Zeile für Zeile auszuführen. Bei längeren Prozeduren müssen Sie wahrscheinlich Haltepunkte oder Unterbrechungen für überwachte Ausdrücke festlegen. Das Ziel hier ist es, die Zeile nicht wie erwartet zu finden.

Wenn Sie die Zeile erhalten haben, die das falsche Ergebnis liefert, der Grund jedoch noch nicht klar ist, versuchen Sie, Ausdrücke zu vereinfachen oder Variablen durch Konstanten zu ersetzen. Dies hilft dabei zu verstehen, ob der Wert der Variablen falsch ist.

Wenn Sie es immer noch nicht lösen können, bitten Sie um Hilfe:

  • Fügen Sie so wenig Code wie möglich ein, um Ihr Problem zu verstehen
  • Wenn das Problem nicht mit dem Wert von Variablen zusammenhängt, ersetzen Sie sie durch Konstanten. (also anstelle von Sheets(a*b*c+d^2).Range(addressOfRange) Sheets(4).Range("A2") schreiben Sheets(4).Range("A2") )
  • Beschreiben Sie, welche Zeile das falsche Verhalten angibt und was es ist (Fehler, falsches Ergebnis ...).


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow