Ich habe ein Benutzerformular erstellt, um einen Fortschrittsbalken anzuzeigen, wenn das Makro noch Blätter importiert
Das Problem ist, dass der Benutzer die rote Taste [X] drücken kann, die die Verarbeitung beendet und unterbricht.
Gibt es eine Möglichkeit, diese rote Schaltfläche des Untergangs zu verbergen, damit potenzielle Benutzer während der Ausführung keine verwirrenden Schaltflächen zum Klicken haben.
bearbeiten:
Ich habe das versucht
%Vor%und ich habe dies auf userform_initialize
verwendet %Vor%Ich erhalte diese Fehlermeldung
Dieser Code wurde hier übernommen. Ich weiß nicht was ich falsch mache und habe die Kommentare schon entfernt. Dies ist der einfachste Code, den ich gefunden habe, also möchte ich ihn in meine Benutzerform integrieren. Jede Hilfe wird geschätzt.
Unten ist eine Routine, die Sie so nennen können:
%Vor%oder von innerhalb Ihres Formulars:
%Vor%Hier ist der Code, den Sie brauchen:
%Vor%Sie können es aus den folgenden Snippets herausarbeiten:
Wählen Sie die cmdClose
-Schaltfläche
Wählen Sie in der Menüleiste View | Code
Wenn der Cursor blinkt, geben Sie den folgenden Code ein:
Wählen Sie in der Menüleiste View | Object
, um zum Benutzerformular zurückzukehren.
Benutzern erlauben, das Formular durch Drücken der Esc-Taste zu schließen:
Wählen Sie die Schaltfläche cmdClose
Ändern Sie im Eigenschaftenfenster die Eigenschaft Cancel
in True
Um zu verhindern, dass Benutzer das Formular schließen, indem sie auf die Schaltfläche X klicken
Wenn UserForm
geöffnet ist, befindet sich oben rechts ein X
. Zusätzlich zur Verwendung der Schaltfläche "Formular schließen" können Personen das Formular mithilfe des X schließen. Wenn Sie dies verhindern möchten, befolgen Sie diese Schritte.
Klicken Sie mit der rechten Maustaste auf einen leeren Teil der UserForm
Wählen Sie View | Code
Wählen Sie oben rechts im Dropdown-Menü Prozedur die Option Abfrageschließen
Wenn der Cursor blinkt, fügen Sie den markierten Code aus dem folgenden Beispiel ein
%Vor% Wählen Sie in der Menüleiste View | Object
, um zum Benutzerformular zurückzukehren.
Wenn nun jemand auf das X
im UserForm klickt, wird Ihre Nachricht angezeigt.
von Ссылка
Ich fand den Beitrag von Justin Davies eher hilfreich: Wenn Sie die Zeile ersetzen
%Vor%mit
%Vor%Das Benutzerformular ist vom Benutzer ausgeblendet, aber immer noch aktiv, bis es entladen ist.
Fragen Sie den Benutzer, ob er das Formular schließen möchte - und Änderungen verlieren (sagen wir). Basierend auf Ideen von Justin & amp; Peter.
%Vor%Edit: Tatsächlich ist mir klar, dass dies ein wenig off topic ist, da OP die Option X entfernen wollte - aber ich finde es immer noch nützlich für interaktive Formulare.
FindWindow
call wurde verbessert, um nur Excel UserForms zu finden. Die Funktion in der ursprünglichen Antwort durchsucht jede Fensterklasse (z. B. Explorer-Fenster und andere Programmfenster). Daher könnte es passieren, dass die [x] -Schaltfläche anderer Programme oder Explorer-Fenster entfernt wurde, wenn ihr Name derselbe Name wie das UserForm war. ThunderDFrame?
Die UserForms in Excel sind eigentlich der Windows-KlasseThunderDFrame
, das ist die Klasse für alle UserFrom in Microsoft Office-Anwendungen nach 2002. Vorher war esThunderXFrame
.
Ich weiß, dass dies eine alte Frage ist, aber für die Art von Benutzerformular, die das OP zitiert, müssen Sie die Schließen-Schaltfläche nicht entfernen, verstecken oder deaktivieren. Es gibt einen viel einfacheren Weg;)
Für jedes Benutzerformular, das keine Elemente enthält, mit denen der Benutzer interagiert (Schaltflächen usw.) und die sich selbst schließen, wenn sie ihren Zweck erfüllt hat, ist es einfach, das Formular zu deaktivieren.
So deaktivieren Sie das Benutzerformular: Setzen Sie in den Eigenschaften des Benutzerformulars auf Aktiviert den Wert False. Das Benutzerformular wird angezeigt, bis der Code sagt, dass es ausgeblendet werden soll. Der Benutzer kann nichts mit dem Formular tun (kann nicht schließen, kann sich nicht bewegen usw.).
Beachten Sie auch, dass Sie entscheiden können, ob Sie ShowModal festlegen möchten, wenn Sie möchten, dass der Benutzer im Hauptfenster weitere Aktionen ausführen kann, während das Benutzerformular noch angezeigt wird.
Eine nützliche Möglichkeit, die Schaltfläche zu deaktivieren, besteht darin, Folgendes zu tun:
%Vor%Obwohl dies den Knopf nicht loswird, macht es das Klicken jedoch nichts.
Überprüfen Sie folgenden Link. Es hat für mich funktioniert. Es entfernt die TitleBar von der UserForm.