Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Editor - Entwicklungsumgebung

Editor [04] Direktfenster

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --Gruppenthema: 9 Folgen 1 2 3 4 5 6 7 8 9 Sie sind in Folge:5
Das Direktfenster ist wundervoll

Zum Testen schließen Sie am Besten alle Mappen und erzeugen eine neu Mappe (nur damit wir nicht in irgendetwas rumpfuschen

Wechseln Sie in die Entwicklungsumgebung und einmal STRG + G (oder Menü Ansicht ->Direktfenster)

Jetzt erhalten Sie ein Fenster, welches sich im Regelfall unten befindet und sinnvollerweise mit Direktbereich überschrieben ist.
Dies soll uns nicht weiter stören.
Wichtig ist die Power dieses Bereiches zu erkennen.

Als erstes eine kleine Übung:

Schreiben Sie in dieses Fenster:

?Now

Fragezeichen nicht vergessen!
Und nun abschicken (Return) und wenn nicht alles schiefgeht und Sie die Zeit Ihres Rechners richtig eingestellt haben ...


Techniken und mehr...

Das Direktfenster ist ein Einzeilen-Editor. Es kann also immer nur eine Commandozeile bearbeitet werden.
Das drücken von Return wertet immer die Zeile aus, in welcher sich der Cursor gerade befindet. Wobei es egal ist, an welcher Position innerhalb der Zeile dies der Fall ist.
Gerade am Anfang kann dies ein wenig verwirren aber mit der Zeit bekommt man Übung.
Es dürfen zwar mehrere Commandozeilen im Direktfenster vorhanden sein, aber ausgelöst kann immer nur eine werden.

Das Leeren des Fensters ist etwas umständlich.
Entweder STRG+A und dann ENTF oder in älteren Versionen muss man sogar STRG+Pos1 STRG+SHIFT+ENDE und dann ENTF (oder ähnlichen Kram) durchführen.
Oder natürlich mit der Maus arbeiten aber dies kann sehr lästig sein.

Fragezeichen oder nicht ???
Ein Fragezeichen vor der Commandozeile ist vergleichbar mit einer MsgBox, nur dass ich das Ergebnis nicht in einem Dialog erhalte, sondern es mir in das Direktfenster geschrieben wird.
Lasse ich das Fragezeichen weg, muss die Commandozeile eine Ausführende sein:

?ActiveSheet.Name

Gibt nun im Direktfenster den Namen des Aktiven Sheets zurück während:

ActiveSheet.Name="Online Excel"

Den Namen des Aktiven Sheets ändert (wenn möglich)

Und nun aus dem Code heraus ...

Eine weitere Möglichkeit, dass Direktfenster zu benutzen ist der Befehl:
Debug.Print
innerhalb eines Codes. Ein einfaches Beispiel:
	
Public Sub DebugTest()
	Dim i As Integer
	For i = 1 To 2
		Debug.Print i
	Next i
End Sub
Nachdem Sie getestet haben ändern Sie nun die Debug Zeile in:

Debug.Print i;

Also einen Strichpunkt hinter das i

Testen Sie wieder und Sie sehen den Unterschied.

Nun schreiben wir die Debugzeile noch ein wenig um:

Debug.Print "i="; i

und nach dem Test noch in:

Debug.Print "i="; i;

Sie sehen, der Strichpunkt verhindert den Zeilenumbruch im Direktfenster. In einem Einzeiler wird er von VBA sogar automatisch gesetzt.

Und anders aus dem Code heraus ...

Eine weitere Möglichkeit ist es, bei einer Codeunterbrechung - z.B. mit einem Haltepunkt - sich Inhalte von Variablen ausgeben zu lassen.
Ich weiß, es gibt viele Möglichkeiten, diese sich anzuschauen aber hier bekomme ich den Inhalt komplett angezeigt (wenn er nicht gar zu groß ist) und kann ihn auch kopieren.
Für länger Ausdrücke bestimmt interessant.
Man schreibt dann einfach ?Variablennamen

Und vieles mehr!

Alleine sich schon Eigenschaften und Methoden von Objekten direkt hier anschauen zu können, ist manchmal ein Segen.
Jeder der das Direktfenster kennengelernt hat und ein wenig damit experimentiert hat, weiß es zu schätzen.

Bitte springen Sie aber nicht direkt aus dem Fenster, wenn es nicht gleich klappt



Weitere Artikel der Gruppe: Editor - Entwicklungsumgebung Aus Excel VBA
Nach oben