Bei der Verwendung von UserForm in VBA Excel ist es nicht ungewöhnlich, dass Sie das standardmäßige X-Steuerelement entfernen müssen, das das Formular schließt. Dies kann nützlich sein, wenn Sie verhindern möchten, dass der Benutzer das Formular versehentlich schließt oder unerwünschte Aktionen verhindert.
Das Entfernen eines Kreuzes aus einer UserForm wird durch eine Änderung der Eigenschaft erreicht ControlBox pro Wert False. Danach ist die Schaltfläche zum Schließen des Fensters deaktiviert und für den Benutzer nicht verfügbar.
Beachten Sie jedoch, dass Sie beim Entfernen eines Kreuzes aus einem UserForm eine alternative Möglichkeit zum Schließen des Formulars vorsehen müssen, z. B. indem Sie eine Schaltfläche Schließen hinzufügen oder eine andere Möglichkeit zum Beenden des Formulars bereitstellen.
Hinweis: Ändern der Eigenschaft ControlBox gilt nur für UserForm und wirkt sich nicht auf Standard-Excel-Fenster aus.
Was ist VBA Excel
VBA Excel bietet Entwicklern die Möglichkeit, sich wiederholende Aufgaben zu automatisieren, komplexe Berechnungen durchzuführen, benutzerdefinierte Formulare und Schnittstellen zu erstellen und mit anderen Anwendungen und Datenbanken zu interagieren.
Die Verwendung von VBA in Excel eröffnet eine Vielzahl von Möglichkeiten zur Automatisierung und Optimierung von Workflows. Dadurch können Routinevorgänge erheblich beschleunigt, die Qualität und Genauigkeit der Arbeit verbessert und die Produktivität und Effizienz bei der Arbeit mit Daten verbessert werden.
Die Hauptelemente von VBA sind Objekte, Methoden und Eigenschaften. Objekte stellen verschiedene Excel-Elemente dar, z. B. Arbeitsmappen, Arbeitsblätter, Zellen und Diagramme. Methoden ermöglichen das Ausführen von Aktionen für Objekte, und Eigenschaften ermöglichen den Zugriff auf ihre Attribute und Werte.
Das Schreiben von Code in Excel VBA kann für Anfänger schwierig sein, aber nach dem Erlernen der grundlegenden Konzepte und Programmierprinzipien wird es viel einfacher, leistungsstarke Makros und benutzerdefinierte Funktionen zu erstellen.
Durch das Entfernen eines Kreuzs aus einem UserForm in VBA Excel können Sie eine professionellere und anpassbarere Benutzeroberfläche für den Benutzer erstellen, ohne dass das Formular versehentlich geschlossen werden kann.
Was ist UserForm?
UserForm bietet umfangreiche Möglichkeiten zum Erstellen einer Excel-Benutzeroberfläche, um die visuelle Darstellung und Funktionalität Ihrer Makros und Anwendungen zu verbessern. Sie können die Anordnung der Elemente anpassen, den Hintergrund stilisieren, die Farben ändern, die Größe und Form des Fensters anpassen und das Verhalten der Elemente steuern, wenn Sie mit ihnen interagieren.
Mit UserForm können Sie eine Vielzahl von Formularen erstellen, z. B. Dateneingabeformen, Einstellungsformulare, Berichtsformulare und andere. Durch die interaktive Benutzererfahrung kann UserForm die Benutzerfreundlichkeit von Makros und automatisierten Aufgaben in Excel erheblich verbessern.
Entfernen eines Kreuzes mit UserForm
Wenn wir ein UserForm in VBA Excel erstellen, hat es standardmäßig ein Kreuz in der oberen rechten Ecke, mit dem der Benutzer das Formular schließen kann. In einigen Fällen müssen Sie jedoch möglicherweise dieses Kreuz entfernen, damit der Benutzer das Formular nicht ohne einen speziellen Befehl schließen kann.
Um ein Kreuz von UserForm zu entfernen, müssen Sie einige Schritte ausführen:
| Schritt | Handlung |
|---|---|
| 1 | Öffnen Sie das Codemodul für UserForm, indem Sie mit der rechten Maustaste darauf klicken und Code anzeigen auswählen. |
| 2 | Fügen Sie den folgenden Code in das Modul ein: |
| Private Deklarationsfunktion RemoveMenu Lib "user32" (ByVal hMenu So Lang, ByVal nPosition So Lang, ByVal wFlags So Lang) So lange Private Deklarationsfunktion GetSystemMenu Lib "user32" (ByVal hwnd So Lang, ByVal bRevert So Lang) So Lange Private Deklarationsfunktion GetMenuItemCount Lib "user32" (ByVal hMenu So Lang) So lange Private Konstante MF_BYPOSITION So Lang = & H400& Private Konstante MF_REMOVE So Lange = &H1000& Privat Const WM_SYSCOMMAND So Lange = &H112& Privat Const SC_CLOSE So Lange = &HF060& Privat Sub UserForm_Initialize() Dim hSysMenu So lange Dim lCnt So lange hSysMenu = GetSystemMenu(mir.hwnd, 0) lCnt = GetMenuItemCount(hSysMenu) RemoveMenu hSysMenu, lCnt - 1, MF_BYPOSITION Or MF_REMOVE Me.Caption = "UserForm ohne Kreuz" End Sub | |
| 3 | Speichern und schließen Sie das Codemodul. |
Wenn Sie nun ein UserForm initialisieren, wird das Kreuz entfernt, und der Benutzer kann das Formular nicht schließen, indem er darauf klickt.
Denken Sie daran, den UserForm-Header auch mit der Me-Eigenschaft zu ändern.Caption auf etwas, das Ihren Anforderungen entspricht.
Das Kreuzproblem
Das UserForm in Excel hat standardmäßig ein Kreuz in der oberen rechten Ecke, mit dem Sie das Fenster schließen können. Manchmal tritt jedoch eine Situation auf, in der Sie diese Funktion deaktivieren müssen, um zu verhindern, dass das Fenster versehentlich geschlossen wird. Dies kann beispielsweise nützlich sein, wenn ein Fenster wichtige Daten enthält, die beim Schließen möglicherweise verloren gehen.
Das Entfernen eines Kreuzes aus einem UserForm ist mit VBA-Code möglich. Verwenden Sie dazu die ControlBox-Eigenschaft und legen Sie sie auf False fest. Zum Beispiel:
Private Sub UserForm_Initialize()Me.ControlBox = FalseEnd Sub
Nach dem Hinzufügen dieses Codes zum UserForm-Modul wird das Kreuz ausgeblendet und der Benutzer kann das Fenster nicht mit diesem schließen. Beachten Sie jedoch, dass dies das Schließen des Fensters nicht durch andere Methoden wie das Drücken der Esc-Taste verhindert.
Es sollte auch berücksichtigt werden, dass das Deaktivieren des Kreuzes durch bestimmte Sicherheitsbeschränkungen oder Richtlinien der Organisation eingeschränkt werden kann. Daher sollten Sie vor der Verwendung dieser Lösung sicherstellen, dass es keine Widersprüche oder Einschränkungen in ihrer Anwendung gibt.