/ / Fortschrittsanzeige in Excel VBA

Fortschrittsanzeige in Excel VBA

Unten sehen wir uns ein Programm in Excel VBA das schafft ein Fortschrittsanzeige. Wir haben die Fortschrittsanzeige so einfach wie möglich gehalten, aber sie sieht professionell aus. Bist du bereit?

Die Benutzerform, die wir erstellen werden, sieht folgendermaßen aus:

Fortschrittsanzeige in Excel VBA

Führen Sie die folgenden Schritte aus, um dieses Benutzerformular zu erstellen.

1. Öffnen Sie den Visual Basic-Editor. Wenn der 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 folgt eingerichtet sein.

Benutzerbildschirm Setup in Excel VBA

Dieses Benutzerformular besteht nur aus drei Steuerelementen. Ein Frame-Steuerelement und zwei Label-Steuerelemente.

3. Fügen Sie das Rahmensteuerelement hinzu. Sie können dies tun, indem Sie in der Toolbox auf Frame klicken. Als Nächstes können Sie ein Rahmensteuerelement auf das Benutzerformular ziehen. Sie müssen einige Eigenschaften dieses Rahmensteuerelements ändern. Klicken Sie mit der rechten Maustaste auf das Rahmensteuerelement, und klicken Sie dann auf Eigenschaften. Leeren Sie das Beschriftungsfeld, stellen Sie die Höhe auf 24 und die Breite auf 204 ein.

4. Fügen Sie das erste Label-Steuerelement hinzu und platzieren Sie es im Frame-Steuerelement. Klicken Sie mit der rechten Maustaste auf das Beschriftungssteuerelement, und klicken Sie dann auf Eigenschaften. Ändern Sie den Namen in "Bar", "BackColor" in "Hervorheben", leeren Sie das Feld "Caption", stellen Sie die Höhe auf 20 und die Breite auf 10 ein.

5. Fügen Sie das zweite Label-Steuerelement hinzu und platzieren Sie es über dem Frame-Steuerelement. Klicken Sie mit der rechten Maustaste auf das Beschriftungssteuerelement, und klicken Sie dann auf Eigenschaften. Ändern Sie den Namen in Text und ändern Sie die Beschriftung in "0% abgeschlossen".

6. Ändern Sie die Beschriftung des Benutzerformulars in Fortschrittsanzeige.

Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem zuvor gezeigten Bild des Benutzerformulars übereinstimmen.

7. Platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgende Codezeile hinzu, um das Benutzerformular anzuzeigen:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wenn Sie die andere Benutzerform durchlaufen habenBeispiele auf dieser Website, wissen Sie, dass dies die Zeit ist, das Sub UserForm_Initialize zu erstellen. Dieser Sub wird automatisch ausgeführt, wenn das Benutzerformular geladen wird. Wenn Sie die Show-Methode für das Benutzerformular verwenden, wird der Code automatisch ausgeführt. Anstelle des Sub UserForm_Initialize erstellen wir das Sub UserForm_Activate. Mithilfe dieses Unterelements kann Excel VBA das Benutzerformular aktualisieren, um den Fortschritt des Makros anzuzeigen.

8. Öffnen Sie den Visual Basic-Editor.

9. Klicken Sie im Projektexplorer mit der rechten Maustaste auf UserForm1, und klicken Sie dann auf Code anzeigen.

10. Wählen Sie Benutzerformular aus der linken Dropdown-Liste. Wählen Sie Aktivieren aus der rechten Dropdown-Liste.

11. Fügen Sie die folgende Codezeile hinzu:

Private Sub UserForm_Activate()

code

End Sub

Erläuterung: Dieses Sub ruft einen anderen unterbenannten Code auf, den wir in einer Minute erstellen werden. Verwirrt? Sie können unser Kapitel Funktion und Unter durchgehen, um mehr über Subs zu erfahren. Wenn Sie es eilig haben, führen Sie einfach die folgenden Schritte aus und alles wird gut.

12. Fügen Sie den untergeordneten Code in ein Modul ein (Klicken Sie im Visual Basic-Editor auf Einfügen, Modul). Dies ist nur ein Beispiel. Hier können Sie Ihren eigenen Code hinzufügen, wenn Sie diesen Fortschrittsanzeiger für Ihr eigenes Makro verwenden möchten. Der Code sieht folgendermaßen 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

Erklärung: Zuerst initialisieren wir einige Variablen. Als nächstes löschen wir Blatt1. Wir verwenden eine Doppelschleife, um die Werte von 1 bis 1000 in den ersten 100 Zeilen des Arbeitsblatts anzuzeigen. Dies wird Excel VBA für eine Weile beschäftigt halten 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 rufen wir einen anderen untergeordneten Namen namens progress auf und übergeben den Wert der Variablen pctCompl, um die Benutzerform zu aktualisieren. Auf diese Weise können wir den Fortschritt des Makros sehen!

13. Fügen Sie einen weiteren Unterpunkt namens progress hinzu. Der Code sieht folgendermaßen 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 die Beschriftung des ersten Label-Steuerelements. Die zweite Codezeile ändert die Breite des zweiten Label-Steuerelements. Fügen Sie DoEvents hinzu, um das Benutzerformular zu aktualisieren.

14. Beenden Sie den Visual Basic-Editor, und klicken Sie auf die Befehlsschaltfläche auf dem Blatt:

Ergebnis:

Fortschrittsanzeige Ergebnis

Hinweis: Für dieses Makro haben wir die Variable i verwendet, um den Fortschritt zu messen. Zum Beispiel ist in Zeile 11 10% abgeschlossen. Dies kann für Ihr Makro anders sein. Die Technik des Übergebens des Werts der Variablen pctCompl an den Unterfortschritt zum Aktualisieren der Benutzerform bleibt gleich.

Lesen Sie auch: