Excel VBA Direktfenster - 5 tolle Möglichkeiten, es zu verwenden!

„Sofortiges Fenster“ kann ein nützliches Werkzeug sein, wenn Sie mit VBA in Excel arbeiten.

Im Direktfenster können Sie schnell Dinge tun, wie zum Beispiel:

  • Abrufen von Informationen zu Excel-Dateien (z. B. Blattanzahl in einer Arbeitsmappe oder Name der Arbeitsmappe)
  • Debug.Print-Informationen schnell abrufen
  • Führen Sie eine Codezeile in Sekunden aus
  • Führen Sie ein Makro aus (oder rufen Sie eine Funktion auf)
  • Informationen zu Variablen abrufen (oder den Wert oder die Variablen festlegen)

Sie müssen zwar kein Sofortfenster verwenden, um mit VBA in Excel zu arbeiten, aber wenn Sie wissen, wie man es gut verwendet, können Sie viel effizienter werden.

In diesem Tutorial werde ich alles abdecken, was Sie über das Sofortfenster wissen müssen und wie Sie es am besten verwenden (mit Beispielen erklärt).

Lass uns anfangen!

Was ist ein Direktfenster in Excel VBA?

Immediate Window ist ein Teil des VB-Editors, mit dem Sie einige schnelle Dinge tun können.

Um Ihnen ein Beispiel zu geben, wenn Sie eine Arbeitsmappe mit einigen ausgeblendeten Arbeitsblättern haben und schnell die Anzahl der Gesamtarbeitsblätter wissen möchten, können Sie dies in wenigen Sekunden mit dem Direktfenster tun.

Immediate Window macht noch viel mehr (wie Sie später in diesem Tutorial sehen werden). Aber lassen Sie uns zunächst nur an Sofortfenster als Werkzeug denken, das Ihnen hilft, Ihre Arbeit in Excel VBA zu beschleunigen.

Wo finde ich das Sofortfenster?

Wenn Sie den Excel VB-Editor öffnen, sehen Sie möglicherweise bereits das unmittelbare Fenster als Teil des VB-Editors. Und wenn Sie es noch nicht sehen, können Sie es ganz einfach anzeigen lassen.

Nachfolgend finden Sie die Schritte zum Öffnen des VB-Editors und zum Sichtbarmachen des Direktfensters:

  1. Klicken Sie im Excel-Menüband auf die Registerkarte "Entwickler" (wenn Sie die Registerkarte "Entwickler" nicht sehen, klicken Sie hier, um zu erfahren, wie Sie sie erhalten)
  2. Klicken Sie in der Codegruppe auf „Visual Basic“. Dies öffnet den VB-Editor
  3. Klicken Sie im VB-Editor auf die Option „Ansicht“ im Menü
  4. Klicken Sie auf Sofortfenster. Dadurch wird das unmittelbare Fenster im VB-Editor angezeigt.

Wenn Sie mit Verknüpfungen vertrauter sind, finden Sie im Folgenden einige, um die obigen Schritte zu beschleunigen:

  • Um den VB-Editor zu öffnen - ALT + F11 (Dies funktioniert auch, wenn Sie die Registerkarte Entwickler im Menüband nicht haben)
  • Um das unmittelbare Fenster anzuzeigen - Strg + G (verwenden Sie diese, der VB-Editor ist geöffnet)

Beispiele für die Verwendung von Direktfenster in Excel VBA

Nachdem Sie nun wissen, wo Sie das unmittelbare Fenster finden, sehen wir uns einige großartige Beispiele an, in denen Sie es bei der Arbeit mit Excel VBA verwenden können.

Informationen zu den Dateien/Arbeitsmappen abrufen

Das „Immediate Window“ ist ein Ort, an dem Sie Fragen zu den Arbeitsmappen stellen können und erhalten sofort eine Antwort.

Angenommen, Sie haben eine Arbeitsmappe und möchten wissen, wie viele Blätter sich in der Arbeitsmappe befinden, können Sie den folgenden Code in das Direktfenster eingeben und die Eingabetaste drücken.

?ActiveWorkbook.Sheets.Count

Dadurch erfahren Sie sofort die Gesamtzahl der Blätter in der aktiven Arbeitsmappe.

Dies kann nützlich sein, wenn Sie eine Arbeitsmappe mit vielen Blättern haben und sie nicht manuell zählen können (oder nicht möchten), oder wenn Sie eine Arbeitsmappe mit ausgeblendeten Blättern haben und die Gesamtzahl wissen möchten zählen.

Das ? (Fragezeichen) soll vor der Abfrage verwendet werden, damit VBA verstehen kann, dass Sie eine Frage stellen. Wenn Sie dieses Fragezeichen nicht verwenden, gibt Ihnen das Sofortfenster keine Details/Antworten.

Nun, dies ist ein wirklich einfaches Beispiel, bei dem Direktfenster Ihnen einige Informationen liefert und Zeit spart.

Nachfolgend einige weitere Beispiele:

So rufen Sie den Namen der aktiven Arbeitsmappe ab

?ActiveWorkbook.Name

Um den Namen des aktiven Blatts zu erhalten

?Activesheet.Name

So rufen Sie den Pfad der Arbeitsmappe ab (die Adresse, an der sie gespeichert ist)

?AktiveArbeitsmappe.Pfad

Wenn Sie also etwas zu einem Objekt benötigen (z. B. Arbeitsmappe, Blätter, Diagramme, Formen, Bereiche usw.), können Sie diese Informationen mithilfe von Sofortfenster schnell abrufen.

Debug.Print-Informationen abrufen

In Excel VBA wird Debug.Print verwendet, um den Wert einer Variablen sofort im Direktfenster anzuzeigen.

Zum Beispiel würde der folgende Code sofort die Nachricht „Guten Morgen“ im unmittelbaren Fenster anzeigen.

Sub DisplayMessage() Debug.Print "Guten Morgen" End Sub

Sie können die Debug.Print-Zeile in Ihrem Code verwenden, um schnell einige Daten im unmittelbaren Fenster abzurufen oder Ihren Code zu debuggen.

Wenn Sie beispielsweise die Namen aller Blätter in einer Arbeitsmappe abrufen möchten, können Sie den folgenden Code verwenden:

Sub GetSheetNames() For Every sh In ActiveWorkbook.Sheets Debug.Print sh.Name Next sh End Sub

Der obige Code durchläuft jedes Blatt in der aktiven Arbeitsmappe und gibt den Namen im unmittelbaren Fenster an.

Debug.Print ist eine nützliche Technik zum Debuggen Ihres Codes. Wenn Sie beispielsweise eine Schleife ausführen und sehen möchten, wie oft die Schleife ausgeführt wurde, können Sie einfach eine Debug.Print-Zeile platzieren, die einfach die inkrementellen Zahlen anzeigt, wenn jede Schleife ausgeführt wird.

Wenn Sie verwenden Debug.Drucken Um den Code zu debuggen, denken Sie daran, ihn zu entfernen, wenn Sie fertig sind.

Ausführen eines Makros (oder einer Funktion)

Es gibt zwar verschiedene Möglichkeiten, ein Makro in Excel auszuführen, eine der schnellen Möglichkeiten ist jedoch die Verwendung des Direktfensters.

Um ein Makro auszuführen, müssen Sie nur den Namen des Makros im Direktfenster eingeben und die Eingabetaste drücken (der Cursor sollte sich am Ende des Makronamens befinden, damit dies funktioniert).

Unten ist ein Beispiel, in dem, sobald Sie den Namen des Makros in das Direktfenster eingeben, es den Code ausführt (wo der Code die Nachricht „Guten Morgen“ im Direktfenster anzeigt).

Dies kann nützlich sein, wenn Sie einen Code haben und überprüfen möchten, ob er wie erwartet funktioniert oder nicht. Sie können eine oder mehrere Debug.Print-Zeilen im Code enthalten und das Makro im unmittelbaren Fenster ausführen.

Es zeigt Ihnen sofort die Werte im Sofortfenster an und Sie können überprüfen, ob alles in Ordnung ist oder nicht.

Sie können das Direktfenster auch verwenden, um benutzerdefinierte Funktionen auszuführen.

Im folgenden Beispiel wird beispielsweise eine Funktion erstellt, um zu prüfen, ob eine Zahl gerade oder ungerade ist. Sie können diese Funktion im Direktfenster ausführen, indem Sie die Funktion mit dem erforderlichen Argument eingeben. In diesem Fall müssen Sie das Fragezeichen verwenden, um einen in der Funktion gespeicherten Wert zurückzugeben.

Ausführen einer Codezeile (oder mehrerer Codezeilen)

Mit Sofortfenster können Sie auch eine Codezeile (oder mehrere Codezeilen) ausführen.

Das Beste daran ist, dass Sie einfach das Sofortfenster öffnen, den Code ausführen und schließen können (im Gegensatz zu einem Makro, das Sie in ein Modulfenster einfügen und dann ausführen müssen).

Dies kann nützlich sein, wenn Sie schnell alle Blätter in der Arbeitsmappe einblenden möchten.

Unten finden Sie den Code, den Sie in das Direktfenster einfügen können, um alle Blätter in der Arbeitsmappe einzublenden. Platzieren Sie den Cursor am Ende der Zeile und sobald Sie die Eingabetaste drücken, werden alle Blätter angezeigt.

Für jedes Blatt in Thisworkbook.Sheets: Sheet.Visible=True: Nächstes Blatt

Beachten Sie, dass dies, obwohl es wie eine einzelne Codezeile aussieht, aus drei Teilen besteht.

Jeder Teil wird mit einem : (Doppelpunkt) getrennt, der wie ein Zeilenumbruch wirkt. Auf diese Weise können Sie die For Next-Schleife im unmittelbaren Fenster verwenden, um durch jedes Blatt zu gehen und die visible-Eigenschaft auf TRUE zu ändern (wodurch jedes ausgeblendete Blatt eingeblendet wird).

Variablenwerte abrufen

Wenn Sie beginnen, komplexe VBA-Codes zu erstellen, müssen Sie sich auf Variablen verlassen, um die Arbeit zu erledigen.

Eine Variable ist etwas, das einen Wert enthält und dieser Wert kann sich ändern, wenn der Code ausgeführt wird. Sie können ein sofortiges Fenster verwenden, um diese Variablenwerte zu überprüfen.

Unten ist ein einfacher Code, der die Summe der ersten 10 positiven ganzen Zahlen angibt und das Ergebnis im unmittelbaren Fenster anzeigt.

Sub AddFirstTenNumbers() Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 To 10 k = k + i Next i Debug.Print i, k End Sub

Sobald Sie diesen Code ausführen, sehen Sie das folgende Ergebnis im unmittelbaren Fenster. Dies sagt Ihnen sofort, dass der Code einwandfrei funktioniert und das erwartete Ergebnis liefert.

Falls es nicht die erwarteten Ergebnisse liefert, können Sie den Code debuggen.

Viele Leute verwenden ein Meldungsfeld beim Debuggen des Codes. Obwohl es gut funktioniert, finde ich es ein wenig aufdringlich, da es mich zur Excel-Arbeitsmappe führt und ein Meldungsfeld anzeigt. Auf der anderen Seite ist die Verwendung von Sofortfenster zum Debuggen viel reibungsloser und hält mich im Visual Basic-Editor selbst.

Hinweis: Wenn Sie mit einem komplexen Code arbeiten und mehrere Variablen haben, die Sie verfolgen müssen, ist es besser, ein Überwachungsfenster zu verwenden. In einem Überwachungsfenster können Sie eine Variable hinzufügen und dann sehen, wie sich diese Variable in Echtzeit ändert (oder während Sie den Code durchlaufen).

Variablenwert beim Debuggen festlegen

Dies ist eine etwas fortgeschrittene Verwendung des Direktfensters, aber wenn Sie es verwenden, kann es beim Debuggen des Codes eine enorme Zeitersparnis bedeuten.

Sie können das Direktfenster verwenden, um den Wert einer Variablen festzulegen, während Sie den Code im Debug-Modus ausführen (wo Sie einen Haltepunkt setzen, damit der Code nicht vollständig ausgeführt wird - aber bis zu einer bestimmten Zeile).

Wenn Sie beispielsweise eine Schleife haben, die 10 Mal ausgeführt wird, und Sie überprüfen möchten, was passiert, wenn die Schleife zum 8. Mal ausgeführt wird, müssen Sie die Schleife nicht sieben Mal durchlaufen, um zur achten Iteration zu gelangen. Sie können einfach vor der Schleife einen Haltepunkt hinzufügen und die Schleifenvariable auf 8 ändern. Wenn Sie den Code jetzt ausführen, wird Ihnen angezeigt, was passiert, wenn die Schleifen zum 8. Mal ausgeführt werden.

Dies ist viel nützlicher, wenn Sie komplexe Codes schreiben und bestimmte Schleifen debuggen möchten.

Angenommen, Sie haben einen Code wie unten gezeigt:

Sub UnhideSheets() For i = 1 To Worksheets.Count Debug.Print Sheets(i).Name Next i End Sub

Der obige Code listet einfach die Blattnamen aller Blätter in der Arbeitsmappe im unmittelbaren Fenster auf.

Wenn Sie nicht die Namen aller Blätter auflisten möchten, sondern nur die Blätter nach dem 10. Blatt, können Sie in der zweiten Zeile der Schleife einen Haltepunkt setzen (damit nichts nach dieser Zeile ausgeführt wird) und dann die Variable 'i' bis 11.

Um den Variablennamen im Direktfenster zu ändern, geben Sie die folgende Zeile ein:

i=11

Dadurch wird sichergestellt, dass die ersten 10 Schleifendurchläufe ignoriert werden und Ihr Variablenwert auf 11 gesetzt wird.

Andocken/Abdocken des Direktfensters

Sie können ein sofortiges Fenster an den VB-Editor andocken lassen - das bedeutet, dass es an einer Stelle im VB-Editor bleibt und sich mit ihm bewegt und vergrößert.

Und Sie können es auch ausdocken lassen, dh es ist unabhängig vom VB-Editor und kann als eigenständiges Fenster verschoben werden.

Im Folgenden erfahren Sie, wie Sie die Andockeinstellungen für das Sofortfenster ändern können:

  1. Klicken Sie im Menü des VB-Editors auf die Option Extras
  2. Klicken Sie auf „Optionen“
  3. Klicken Sie im Dialogfeld Optionen auf die letzte Registerkarte - Andocken
  4. Aktivieren Sie die Option Direktes Fenster, um es andockbar zu machen, und deaktivieren Sie es, um es nicht andockbar zu machen.
  5. OK klicken

Wenn das unmittelbare Fenster sichtbar ist, können Sie alternativ auch mit der rechten Maustaste klicken und dessen andockbare Eigenschaft ändern.

Andockbar bedeutet, dass das unmittelbare Fenster ein Teil des bestehenden Fensters wird, indem es sich selbst an bestimmten Stellen platziert, z. B. links vom Fenster oder unten. Dadurch können die angedockten Fenster zusammen verschoben und vergrößert werden.

Sofortiges Fenster wird nicht angezeigt - Hier sind einige Möglichkeiten, es zu bekommen

Dafür kann es mehrere Gründe geben.

Der häufigste Grund dafür, dass ein sofortiges Fenster nicht angezeigt wird, ist, dass es nicht sichtbar gemacht wurde. Es ist möglicherweise standardmäßig nicht sichtbar und damit es angezeigt wird, müssen Sie im Menü zur Option Ansicht gehen und auf die Option Direktes Fenster klicken. Dadurch wird sichergestellt, dass es im VB-Editor sichtbar ist.

Sie können auch die Tastatur Strg + G verwenden, um das unmittelbare Fenster anzuzeigen. Verwenden Sie diese Tastenkombination, während Sie sich im VB-Editor befinden.

Ein weiterer Grund, warum Sie das sofortige Fenster möglicherweise nicht sehen, ist, dass es minimiert wurde und jetzt so geschlossen ist, dass Sie es nicht sehen können (wie hier berichtet). Machen Sie einfach einen schnellen Scan und prüfen Sie, ob irgendwo ein kleines blau-rotes Quadrat lauert. Sie können den Cursor darüber bewegen und Sie sehen eine Option zum Ändern der Größe.

Wenn Sie das unmittelbare Fenster überhaupt nicht sehen können, hat Folgendes für viele Leute funktioniert (dies geschieht oft aufgrund von Änderungen der Bildschirmauflösung):

  1. Öffnen Sie den VB-Editor
  2. Drücken Sie Strg-G, um den Fokus auf das Sofortfenster zu setzen (oder klicken Sie im Menü auf die Option Ansicht und dann auf Sofortfenster).
  3. Halten Sie die ALT-Taste gedrückt und drücken Sie dann die Leertaste. Dadurch werden Dropdown-Optionen für das unmittelbare Fenster angezeigt.
  4. Drücken Sie M (für Verschieben)
  5. Verwenden Sie die Pfeiltasten, um das Fenster zu verschieben
  6. Sobald Sie herausgefunden haben, wo es ist, machen Sie es größer

Ich habe dies aus einem Forum hier erhalten und habe auch festgestellt, dass dasselbe als Lösung für das sofortige VBA-Fenster vorgeschlagen wird, das nicht angezeigt wird.

Eine andere Sache, die Sie versuchen können, ist, das Sofortfenster abdockbar zu machen (gehen Sie zu Extras -> Optionen -> Andocken und deaktivieren Sie die Option Sofortfenster). Das hat bei einigen Leuten funktioniert.

Folgende Artikel könnten Ihnen auch gefallen:

  • Excel Persönliche Makro-Arbeitsmappe | Makros in allen Arbeitsmappen speichern und verwenden
  • Excel VBA-Schleifen: Für Next, Do While, Do Until, For Each (mit Beispielen)
  • Arbeiten mit Arbeitsblättern mit Excel VBA
  • Erstellen einer benutzerdefinierten Funktion (UDF) in Excel VBA

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave