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

Forumthread: Mit VBA Fenster minimieren

Mit VBA Fenster minimieren
27.04.2006 13:13:12
Edmundo
Hallo
Gibts es die möglich keit, dass wenn eine Userform startet, alle anderen Fenster, die auf dem Desktop offen sind zu minimieren?
Danke
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA Fenster minimieren
27.04.2006 13:19:30
u_
Hallo Edmundo, Sebastian, Everlast oder wie du sonst noch heißt,
allenfalls mit irgendwelchen API-Funktionen, nicht mit VBA.
Warum nicht einfach die UF auf Bildschirmgröße bringen?
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
AW: Mit VBA Fenster minimieren
27.04.2006 13:30:33
Sebastian
Weil einfach gesagt total scheiße aussieht wenn ich das so groß wie den Bildschirm amche.
ausserdem, man bedenke, dass man unterschiedliche Bildschirmgrößen hat, was dann?
naja, also fände ich ein Minimieren besser...
AW: Mit VBA Fenster minimieren
27.04.2006 15:36:47
K.Rola
Hallo,
Option Explicit
Const KE_WIN = &H5B
Const KE_M = &H4D
Const KE_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub UserForm_Activate()
keybd_event KE_WIN, 0, 0, 0
keybd_event KE_M, 0, 0, 0
keybd_event KE_WIN, 0, KE_KEYUP, 0
keybd_event KE_M, 0, KE_KEYUP, 0
UserForm1.Show
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.WindowState = -4137
End Sub

Gruß K.Rola
Anzeige
AW: Mit VBA Fenster minimieren
27.04.2006 16:03:51
Sebastian
Danke, wunderbar!!
;
Anzeige
Anzeige

Infobox / Tutorial

Fenster mit VBA minimieren


Schritt-für-Schritt-Anleitung

Um alle anderen Fenster auf dem Desktop zu minimieren, wenn eine Userform in Excel VBA geöffnet wird, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein neues UserForm hinzu, wenn du noch keines hast.
  3. Kopiere den folgenden Code in das Codefenster des UserForms:
Private Sub UserForm_Activate()
    keybd_event KE_WIN, 0, 0, 0
    keybd_event KE_M, 0, 0, 0
    keybd_event KE_WIN, 0, KE_KEYUP, 0
    keybd_event KE_M, 0, KE_KEYUP, 0
    UserForm1.Show
End Sub
  1. Füge zusätzlich diesen Code hinzu, um das aktuelle Fenster zu minimieren, wenn die Userform geschlossen wird:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.WindowState = -4137
End Sub
  1. Stelle sicher, dass du die Konstante KE_WIN und KE_M am Anfang deines Codes deklarierst:
Const KE_WIN = &H5B
Const KE_M = &H4D
Const KE_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  1. Speichere dein Projekt und teste die Userform.

Häufige Fehler und Lösungen

  • Fehler: Die Userform wird nicht angezeigt.

    • Lösung: Stelle sicher, dass der Code im UserForm_Activate richtig platziert ist und dass du die Userform tatsächlich aufrufst.
  • Fehler: Die Fenster minimieren-Funktion funktioniert nicht.

    • Lösung: Überprüfe, ob die API-Funktionen korrekt deklariert sind und ob du die richtigen Konstanten verwendest.
  • Fehler: Das aktuelle Fenster minimieren funktioniert nicht wie erwartet.

    • Lösung: Vergewissere dich, dass du Application.WindowState korrekt gesetzt hast.

Alternative Methoden

Falls du die Fenster minimieren möchtest, ohne auf API-Funktionen zurückzugreifen, kannst du versuchen, die Userform einfach auf die Bildschirmgröße zu maximieren. Dies ist jedoch möglicherweise nicht die beste Lösung, da es auf verschiedenen Bildschirmgrößen unterschiedlich aussieht.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die oben genannten Codes kombinieren kannst:

Private Sub UserForm_Activate()
    keybd_event KE_WIN, 0, 0, 0
    keybd_event KE_M, 0, 0, 0
    keybd_event KE_WIN, 0, KE_KEYUP, 0
    keybd_event KE_M, 0, KE_KEYUP, 0
    ' Userform anzeigen
    UserForm1.Show
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.WindowState = -4137 ' Fenster minimieren
End Sub

Tipps für Profis

  • Verwende Application.WindowState = xlMinimized anstelle von -4137, um die Lesbarkeit des Codes zu verbessern.
  • Stelle sicher, dass du die Userform immer im Vordergrund hältst, um eine bessere Benutzererfahrung zu gewährleisten.
  • Teste deine VBA-Anwendungen auf verschiedenen Bildschirmgrößen, um sicherzustellen, dass sie überall gut aussehen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein VBA-Code auf allen Windows-Versionen funktioniert?
Es ist wichtig, deine Anwendung auf verschiedenen Versionen zu testen, da API-Funktionen in unterschiedlichen Umgebungen variieren können.

2. Was sind die Vorteile der Verwendung von API-Funktionen in VBA?
API-Funktionen bieten dir mehr Kontrolle über die Windows-Oberfläche, sodass du Fenster minimieren oder maximieren kannst, was mit VBA allein nicht möglich ist.

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