Verstecke die Schaltfläche [X] auf dem Excel VBA-Benutzerformular für meine Fortschrittsanzeige

8

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.

    
forums 01.03.2013, 08:29
quelle

8 Antworten

11

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%     
Peter Albert 01.03.2013, 08:38
quelle
5

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:

%Vor%

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

aus

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 Ссылка

    
JustinJDavies 01.03.2013 08:35
quelle
3

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.

    
Peter Balzer 19.02.2014 19:03
quelle
2

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.

    
Richard Briggs 10.05.2014 21:22
quelle
2

Dies ist eine Verbesserung der obigen Antwort von @Peter Albert

  • Windows-API-Aufrufe sind jetzt Office x64-sicher
  • 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.
%Vor%
  

ThunderDFrame?
  Die UserForms in Excel sind eigentlich der Windows-Klasse ThunderDFrame , das ist die Klasse für alle UserFrom in Microsoft Office-Anwendungen nach 2002. Vorher war es ThunderXFrame .

    
Pᴇʜ 27.10.2016 13:43
quelle
1

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.

    
brit0n 16.06.2015 06:18
quelle
0

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.

    
Gravity Grave 18.11.2016 20:14
quelle
0

Überprüfen Sie folgenden Link. Es hat für mich funktioniert. Es entfernt die TitleBar von der UserForm.

Ссылка

    
Rahul Varadkar 30.12.2017 06:47
quelle

Tags und Links