Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Explorerfenster schließen

Explorerfenster schließen
Jürgen
Hallo Excel Experten,
per vba öffne ich über folgenden Befehl ein Explorerfenster um von dort Dateien
mit verschiedenen Zellen zu verknüpfen (Die Funktion Hyperlink einfügen über das Menue
kann ich dafür nicht verwenden):
Ergebnis = Shell("explorer.exe /e,/n,, c:\temp\", 4)
Das funktioniert auch einwandfrei. Wenn der Vorgang abgeschlossen ist soll sich das Explorerfenster
natürlich auch wieder schließen (nach Mausklick auf einen Schaltfläche). Dafür fehlt mir aber der entsprechende Code.
Wie bekomme ich es also hin, entweder speziell das gerade geöffnete, oder falls nicht anders möglich,
alle geöffneten Windows-Explorerfenster (nicht den Internetexplorer) per vba zu schließen?
Gruß und vielen Dank im voraus, Jürgen.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Explorerfenster schließen
24.11.2010 12:01:50
Anton
Hallo Jürgen,
probier sowas:
Code:

Sub b()
  Dim objShell As Object  
  Dim win As Object  
  Set objShell = CreateObject("Shell.Application")  
  For Each win In objShell.Windows  
    If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then    
      If UCase(win.LocationName) = "TEMP" Then  
        win.Quit
      End If  
    End If  
  Next
  Set objShell = Nothing  
End Sub  


mfg Anton
Anzeige
AW: Explorerfenster schließen
24.11.2010 13:38:24
Jürgen
Hallo Anton,
danke für den Tip!
Daraus konnte ich mir etwas passendes basteln.
Gruß, Jürgen
;
Anzeige
Anzeige

Infobox / Tutorial

Explorerfenster mit VBA schließen


Schritt-für-Schritt-Anleitung

Um ein Explorerfenster mit VBA zu schließen, kannst du den folgenden Code verwenden. Dieser Code durchläuft alle geöffneten Fenster und schließt das Explorerfenster, das sich im Ordner "TEMP" befindet.

Sub SchließeExplorerfenster()
    Dim objShell As Object
    Dim win As Object
    Set objShell = CreateObject("Shell.Application")

    For Each win In objShell.Windows
        If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then
            If UCase(win.LocationName) = "TEMP" Then
                win.Quit
            End If
        End If
    Next

    Set objShell = Nothing
End Sub

Führe diesen Code aus, nachdem du dein Explorerfenster geöffnet hast. Das Skript schließt das Fenster, in dem sich der Temp-Ordner befindet.


Häufige Fehler und Lösungen

Fehler: Das Explorerfenster wird nicht geschlossen.

Lösung: Stelle sicher, dass der Pfad des geöffneten Explorerfensters korrekt ist. Der Code überprüft nur Fenster, die den Namen "TEMP" tragen. Wenn du ein anderes Fenster schließen möchtest, musst du den Ordnernamen im Code entsprechend anpassen.


Alternative Methoden

Eine alternative Methode, um ein Explorerfenster zu schließen, ist die Verwendung des Windows-Befehls taskkill. Dieser Befehl kann in Kombination mit VBA verwendet werden:

Sub SchließeAlleExplorerfenster()
    Shell "taskkill /F /IM explorer.exe", vbHide
End Sub

Dieser Befehl schließt alle geöffneten Explorerfenster. Sei vorsichtig, da dies auch alle anderen Explorerfenster schließt und nicht nur das, das du geöffnet hast.


Praktische Beispiele

Wenn du mehr als nur das Fenster im Temp-Ordner schließen möchtest, kannst du den Code anpassen. Hier ein Beispiel, das alle Explorerfenster schließt:

Sub SchließeAlleExplorerfenster()
    Dim objShell As Object
    Set objShell = CreateObject("Shell.Application")

    For Each win In objShell.Windows
        If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then
            win.Quit
        End If
    Next

    Set objShell = Nothing
End Sub

Dieses Skript ist nützlich, wenn du mehrere Explorerfenster offen hast und diese alle auf einmal schließen möchtest.


Tipps für Profis

  • Wenn du häufig mit Explorerfenstern arbeitest, speichere deine VBA-Codes in einer Moduldatei, um schnell darauf zugreifen zu können.
  • Nutze die Application.OnTime Methode, um die Schließung von Explorerfenstern zeitlich zu steuern.
  • Experimentiere mit verschiedenen Bedingungen im Code, um Fenster basierend auf anderen Kriterien zu schließen, wie z.B. den Titel des Fensters.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Ordner verwenden?
Ja, du kannst den Namen des Ordners im Code anpassen, um Fenster mit anderen Pfaden zu schließen.

2. Was passiert, wenn ich den Befehl taskkill benutze?
Der Befehl schließt alle geöffneten Explorerfenster, was bedeutet, dass du möglicherweise Daten verlieren könntest, die in diesen Fenstern geöffnet sind. Nutze diesen Befehl mit Vorsicht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige