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

Application.WindowState

Forumthread: Application.WindowState

Application.WindowState
26.02.2004 08:12:27
Heike
Hallo Excel-Gemeinde,
wenn ich in einem allgemeinen Modul den Status des Programmfensters von Excel ändere, funktioniert dies nur, bevor eine Userform aufgerufen wird.
Bsp.:
Sub Main()
Application.WindowState = xlNormal
UserForm1.Show
End Sub

Wenn ich hingegen den Fensterstatus aus der Userform heraus im Klassenmodul ändern möchte, passiert nichts.
Bsp.:

Private Sub OptionButton1_Click()
Application.WindowState = xlMaximized
End Sub

Auch der Umweg über die Änderung der Eigenschaft in einem allgemeinen Modul bringt hier keinen Erfolg. Ist diese Eigenschaft während der Anzeige einer Userform möglicherweise schreibgeschützt?
Danke für eure Hinweise.
Heike
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.WindowState
26.02.2004 10:16:28
soendi
hallo heike
wenn du die userform lädst, mach das ungebunden zum fenster
'userform anzeigen
UserForm1.Show 0 'hinter die userform die NULL schreiben, dann ist die UF nicht mit dem fenster verknüpft.
'minimieren

Private Sub OptionButton1_Click()
Application.WindowState = xlMaximized
End Sub

... und es funktioniert
getestet unter winxppro/officexppro
gruss
soendi
Anzeige
AW: Application.WindowState
26.02.2004 15:59:27
Heike
Hallo Soendi,
wenn ich unter Excel97 UserForm1.Show 0 aufrufe, erhalte ich die Fehlermeldung "Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung".
Gruß Heike
AW: Application.WindowState
27.02.2004 13:55:49
soendi
ja, drum schreib ich ja auch unten getestet unter winxppro/officexppro hin.
hab halt auch nicht alle versionen von xl auf meinem firmen-rechner...
vielleicht unterstützt xl97 diese art von ungebundenem laden auch nicht.
gruss
soendi
Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung des WindowState in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Allgemeines Modul erstellen:

    • Öffne dein Excel-Dokument.
    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.
  2. Code für das Hauptmodul schreiben:

    Sub Main()
       Application.WindowState = xlNormal
       UserForm1.Show
    End Sub
  3. Userform erstellen:

    • Gehe im VBA-Editor zu Einfügen > UserForm und füge Steuerelemente hinzu.
  4. Code für die Userform hinzufügen:

    • Klicke mit der rechten Maustaste auf die UserForm und wähle Code anzeigen.
    • Füge folgenden Code hinzu:
      Private Sub OptionButton1_Click()
      Application.WindowState = xlMaximized
      End Sub
  5. Userform ungebunden laden:

    • Um sicherzustellen, dass der Fensterstatus auch während der Anzeige der Userform geändert werden kann, lade die Userform ungebunden:
      UserForm1.Show 0

Häufige Fehler und Lösungen

  • Fehler: "Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung":

    • Ursache: Diese Fehlermeldung entsteht häufig, wenn die Methode UserForm1.Show ohne die korrekte Syntax verwendet wird. Stelle sicher, dass du UserForm1.Show 0 verwendest, um die Userform ungebunden zu laden.
  • Userform zeigt keine Änderungen am Fensterstatus:

    • Wenn du versuchst, den Fensterstatus während der Anzeige der Userform zu ändern, wird der Befehl ignoriert. Vergewissere dich, dass du die Userform ungebunden lädst.

Alternative Methoden

  • Verwendung von API-Funktionen:

    • Du kannst auch Windows-API-Funktionen verwenden, um die Fenstergröße und den Status zu steuern. Dies erfordert jedoch ein tieferes Verständnis der Windows-API und kann die Komplexität erhöhen.
  • Einsatz von Timer:

    • Eine andere Möglichkeit ist, einen Timer zu verwenden, um nach einer bestimmten Zeit den Fensterstatus zu ändern. Dies kann in Situationen nützlich sein, in denen du sicherstellen möchtest, dass die Userform geladen ist, bevor Änderungen vorgenommen werden.

Praktische Beispiele

  1. Maximieren des Fensters nach dem Klicken eines Buttons:

    Private Sub CommandButton1_Click()
       Application.WindowState = xlMaximized
    End Sub
  2. Minimieren des Fensters beim Schließen der Userform:

    Private Sub UserForm_QueryClose(Cancel As Integer)
       Application.WindowState = xlMinimized
    End Sub

Tipps für Profis

  • Verwende Application.WindowState mit Bedacht: Häufiges Wechseln zwischen den Zuständen kann eine verwirrende Benutzererfahrung schaffen. Stelle sicher, dass der Wechsel für den Nutzer sinnvoll ist.

  • Kommentare im Code: Füge Kommentare in deinen VBA-Code ein, um die Abschnitte zu erklären. Dies hilft dir und anderen, den Code später besser zu verstehen.


FAQ: Häufige Fragen

1. Warum funktioniert Application.WindowState = xlMaximized nicht während der Anzeige einer Userform?
Antwort: Die WindowState-Eigenschaft ist während der Anzeige einer Userform schreibgeschützt. Lade die Userform ungebunden, um Änderungen am Fensterstatus vornehmen zu können.

2. Welche Excel-Versionen unterstützen UserForm.Show 0?
Antwort: Diese Methode wurde unter neueren Excel-Versionen getestet, wie Excel XP. Es kann sein, dass ältere Versionen wie Excel 97 diese Methode nicht unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige