Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Explorerfenster wieder schließen

Forumthread: Explorerfenster wieder schließen

Explorerfenster wieder schließen
Klaus
Hallo Excelfreunde,
mit dem nachfolgenden Code kann ich den Explorer zwar wie gewünscht öffnen, aber mir ist nicht bekannt, wie ich ihn wieder schließe. Versuche mit "vbHide" waren erfolglos.
Die Öffnungsprozedur lautet:
Sub ExplorerAnzeigen()
Dim exver As String
exver = Application.version
On Error Resume Next
If Left(exver, 2) >= "11" Then
Shell "Explorer ," & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len( _
ThisWorkbook.Name)), vbNormalFocus
Else
Shell "Explorer " & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len( _
ThisWorkbook.Name)), vbNormalFocus
End If
End Sub

Wie kann ich den Explorer wieder schließen?
Danke vorab!
Gruß Klaus
Anzeige
AW: Explorerfenster wieder schließen
15.03.2011 09:41:01
Martin
Hallo Klaus,
schnellste und einfachste Lösung wäre es wahrscheinlich, wenn du mit "Application.SendKeys" die Tastenkombination "Alt+F4" senden würdest. Das geht aber nur dann, wenn die "richtige" Anwendung aktiv ist.
Viele Grüße
Martin
Nachfrage: Explorerfenster wieder schließen
15.03.2011 10:14:43
Klaus
Rudi und Martin ich danke Euch für Eure Antworten. Beides funktioniert.
Aber in welcher Excel-Version kann "Application.SendKeys" die Tastenkombination "Alt+F4" nicht funktionieren und wie lautet sie dann?
Gruß Klaus
Anzeige
AW: Nachfrage: Explorerfenster wieder schließen
15.03.2011 10:19:50
Martin
Hallo Klaus,
also "Alt+F4" ist eine Standard-Windows-Tastenkombination, die nichts mit Excel zu tun hat. Diese ging schon immer und wird sicherlich auch in Zukunft beibehalten werden. Übrigens kann dein Code sogar auf eine Zeile reduziert werden:
Sub ExplorerAnzeigen()
Shell "Explorer" & IIf(Application.Version >= 110, " ,", " ") & ThisWorkbook.Path,  _
vbNormalFocus
End Sub
Viele Grüße
Martin
Anzeige
AW: Nachfrage: Explorerfenster wieder schließen
15.03.2011 10:35:04
Klaus
Hallo Martin,
Verständnisnachfrage: Mit Deinem verkürzten Code erfolgt dann aber nur Versionsprüfung für Version ab 11?
Gruß Klaus
AW: Nachfrage: Explorerfenster wieder schließen
15.03.2011 11:01:39
Martin
Hallo Klaus,
"IIf" ist (fast) genau das Gleiche wie "If", außer dass es kein "ElseIf" gibt. In der VBA-Hilfe steht:
IIf(expr, truepart, falsepart)
Ich habe also "Wenn-Dann-Sonst" geschrieben: Wenn Excelversion ist größergleich 11, dann schreibe " ," (Leerzeichen und Komma), sonst schreibe " " (nur Leerzeichen).
Viele Grüße
Martin
Anzeige
Danke Martin!
15.03.2011 11:14:19
Klaus
Wieder dazu gelernt!
Gruß Klaus
AW: Explorerfenster wieder schließen
15.03.2011 09:49:22
Rudi
Hallo,
keine Ahnung. Evtl. per SendKeys
Den Bandwurm
Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name))
kannst du aber auf
ThisWorkbook.Path
reduzieren.
Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

Explorerfenster in Excel effizient schließen


Schritt-für-Schritt-Anleitung

Um ein Explorerfenster in Excel zu schließen, kannst Du die Application.SendKeys-Methode verwenden, um die Tastenkombination Alt+F4 zu senden. Hier ist eine einfache Anleitung:

  1. Öffne das Explorerfenster mit VBA. Verwende dazu den folgenden Code:

    Sub ExplorerAnzeigen()
       Dim exver As String
       exver = Application.version
       On Error Resume Next
       If Left(exver, 2) >= "11" Then
           Shell "Explorer ," & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name)), vbNormalFocus
       Else
           Shell "Explorer " & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name)), vbNormalFocus
       End If
    End Sub
  2. Um das Explorerfenster wieder zu schließen, füge den folgenden Code hinzu:

    Sub ExplorerSchließen()
       Application.SendKeys "%{F4}"
    End Sub
  3. Führe die ExplorerSchließen-Subroutine aus, nachdem Du das Explorerfenster geöffnet hast.


Häufige Fehler und Lösungen

  • Fehler: Explorerfenster schließen sich von alleine.
    Lösung: Stelle sicher, dass die Anwendung, die Du schließen möchtest, aktiv ist. Application.SendKeys funktioniert nur für den aktiven Fokus.

  • Fehler: Die Tastenkombination wird nicht erkannt.
    Lösung: Überprüfe, ob Du die richtige Syntax verwendest. SendKeys "%{F4}" ist der korrekte Code für Alt+F4.


Alternative Methoden

Falls Du eine andere Methode als SendKeys verwenden möchtest, kannst Du auch VBA-Funktionen nutzen, um das Fenster programmgesteuert zu schließen. Eine Möglichkeit ist die Verwendung von API-Funktionen, um Fenster zu schließen.

Hier ein Beispiel, wie Du ein Explorerfenster mit Windows-API schließen kannst:

Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" ( _
    ByVal hWnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Const WM_CLOSE = &H10

Sub ExplorerFensterSchließen()
    Dim hWnd As Long
    hWnd = FindWindow("CabinetWClass", vbNullString) ' Sucht nach dem Explorerfenster
    If hWnd <> 0 Then
        SendMessage hWnd, WM_CLOSE, 0, 0 ' Sendet das Schließen-Signal
    End If
End Sub

Praktische Beispiele

Ein praktisches Beispiel zur Verwendung der Methoden:

  1. Du kannst die ExplorerAnzeigen-Subroutine verwenden, um ein Explorerfenster zu öffnen.
  2. Verwende die ExplorerSchließen-Subroutine, um das Fenster zu schließen.
  3. Wenn Du es eleganter magst, nutze die ExplorerFensterSchließen-Subroutine, um das Fenster per API zu schließen.

Diese Methoden zeigen, wie Du das Excel Fenster schließen kannst, ohne die Benutzeroberfläche manuell bedienen zu müssen.


Tipps für Profis

  • Tastenkombinationen: Verwende die Tastenkombination Excel schließen (z.B. Alt+F4) für eine schnellere Bedienung.
  • Automatisierung: Integriere die Schließmethoden in größere VBA-Projekte, um die Benutzererfahrung zu verbessern.
  • Fehlerbehandlung: Implementiere On Error Resume Next, um Fehler beim Schließen der Fenster zu ignorieren und den Code robust zu gestalten.

FAQ: Häufige Fragen

1. Funktioniert Application.SendKeys in jeder Excel-Version?
Ja, Application.SendKeys funktioniert in allen modernen Excel-Versionen, um die Tastenkombination Fenster schließen zu senden.

2. Was ist der Unterschied zwischen vbHide und dem Schließen des Fensters?
vbHide wird verwendet, um ein Fenster zu verstecken, während das Schließen des Fensters es vollständig schließt. Verwende SendKeys oder API-Funktionen, um Fenster tatsächlich zu schließen.

3. Kann ich mehrere Explorerfenster gleichzeitig schließen?
Ja, das Schließen mehrerer Fenster erfordert eine Schleife, die jedes Fenster sucht und das Schließen-Signal sendet.

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