Im Folgenden werden wir ein Programm in Excel VBA suchen, die eine Fortschrittsanzeige erstellt. Wir haben die Fortschrittsanzeige so einfach wie möglich gehalten, aber es sieht professionell aus. Sind Sie bereit? Die Userform werden wir aussehen wie folgt erstellen:

Progress Indicator in Excel VBA

Um diese Userform zu erstellen, führen Sie die folgenden Schritte.

  1. Öffnen Sie den Visual Basic-Editor. Wenn das Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.

  2. Klicken Sie auf Einfügen, Benutzerformular. Wenn die Toolbox nicht automatisch angezeigt wird, klicken Sie auf Ansicht, Toolbox. Ihr Bildschirm sollte wie unten aufgebaut werden.

Userform Screen Setup in Excel VBA

Diese Userform besteht nur aus drei Kontrollen. Ein Rahmensteuer und zwei Label-Steuerelemente.

Fügen Sie die Rahmensteuerung 3.. Sie können dies tun, indem Sie in der Toolbox auf Bild klicken. Als Nächstes können Sie ein Frame-Steuerelement auf dem Benutzerformular ziehen. Sie müssen einige Eigenschaften dieser Rahmensteuerung ändern. Rechte Mausklick auf der Rahmensteuerung, und klicken Sie dann auf Eigenschaften. Leere Feld Beschriftung, stellen Sie die Höhe auf 24 und Breite bis 204

  1. Das erste Label-Steuerelement hinzufügen und es in dem Frame-Steuerelement platzieren. Rechte Mausklick auf dem Label-Steuerelement, und klicken Sie dann auf Eigenschaften. Ändern Sie den Namen zu Bar, Backcolor zu markieren, die Caption-Feld leer, stellen Sie die Höhe auf 20 und Breite bis 10.

  2. Das zweite Label-Steuerelement hinzufügen und es über dem Frame-Steuerelement platzieren.

Rechte Mausklick auf dem Label-Steuerelement, und klicken Sie dann auf Eigenschaften.

Ändern Sie den Namen zu Text und die Beschriftung ändern zu ‚0% Abgeschlossen‘.

  1. Ändern Sie die Beschriftung des Userform Progress Indicator.

Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem Bild von der Userform gezeigt früher konsistent sein.

  1. Setzen Sie eine Befehlsschaltfläche auf dem Arbeitsblatt und fügen Sie die folgende Codezeile der Userform anzuzeigen:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wenn Sie durch die anderen Userform Beispiele auf dieser Seite gegangen sind, wissen Sie, dass dies die Zeit ist, die Sub UserForm_Initialize zu erstellen. Dieser Teil läuft automatisch ab, wenn die Userform geladen wird. Wenn Sie also die Show-Methode für die Userform verwenden, wird der Code automatisch ausgeführt werden. Anstelle des Sub UserForm_Initialize schaffen wir die Sub UserForm_Activate. Durch die Nutzung dieser Unter kann Excel VBA die Userform aktualisieren, um die Fortschritte des Makros zu zeigen.

  1. Öffnen Sie den Visual Basic-Editor.

  2. In dem Projekt-Explorer direkt auf UserForm1 und klicken Sie dann auf Code anzeigen klicken.

  3. Wählen Sie Userform aus der linken Dropdown-Liste. Wählen Sie Aktivieren aus der rechten Dropdown-Liste.

  4. Fügen Sie den folgenden Code-Zeile:

Private Sub UserForm_Activate()

code

End Sub

Erläuterung: Dieser Teil ruft eine andere Unter namens Code, den wir in einer Minute erstellen werden. Verwirrt? Sie können unsere Funktion und Sub Kapitel gehen durch mehr über U-Boote zu lernen. Wenn Sie in Eile sind, führen Sie einfach die folgenden Schritte und Sie werden in Ordnung sein.

  1. Der Unter Code in ein Modul mit dem Namen (in dem Visual Basic-Editor auf Einfügen, Module). Dies ist nur ein Beispiel. Dies ist der Ort, um Ihren eigenen Code hinzufügen, wenn Sie diese Fortschrittsanzeige für die eigene Makro verwenden mögen. Der Code sieht wie folgt aus.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100

For j = 1 To 1000

Cells(i, 1).Value = j

Next j

pctCompl = i

progress pctCompl

Next i

End Sub

Erläuterung: Zuerst initialisieren wir einige Variablen. Als nächstes löschen wir sheet1.

Wir verwenden eine Doppelschleife, die Werte von 1 bis 1000 in den ersten 100 Zeilen des Arbeitsblatts zu zeigen. Dies hält Excel VBA beschäftigt für eine Weile und gibt uns die Möglichkeit, den Fortschritt des Makros zu sehen. Die Variable pctCompl (Abkürzung für percentageCompleted) misst den Fortschritt des Makros. Schließlich haben wir einen weiteren Unter namens Fortschritt nennen, und den Wert der Variablen pctCompl passieren, um die Userform zu aktualisieren. Auf diese Weise können wir den Fortschritt des Makro sehen! 13. Fügen Sie ein anderes Unter namens Fortschritt. Der Code sieht wie folgt aus:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"

UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

Erläuterung: Die erste Codezeile ändert sich die Beschriftung des ersten Etikettenkontrolle. Die zweite Codelinie ändert sich die Breite des zweiten Etikettenkontrolle. In DoEvents die Userform zu aktualisieren.

  1. Beenden Sie den Visual Basic-Editor, und klicken Sie auf den Befehlsschaltflächen auf dem Blatt:

Ergebnis:

Progress Indicator Result

Hinweis: für diesen Makro verwenden wir die Variable i den Fortschritt zu messen.

Zum Beispiel in Zeile 11 wird 10% abgeschlossen. Dies kann für Ihren Makro unterschiedlich sein. Die Technik der Wert der Variablen pctCompl zu dem Unter Fortschritt Passieren der Userform bleibt gleich zu aktualisieren.