Fortschrittsanzeige in Excel VBA - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden sehen wir uns ein Programm in an Excel VBA das schafft a Fortschrittsanzeige. Wir haben die Fortschrittsanzeige so einfach wie möglich gehalten, aber sie sieht professionell aus. Sind Sie bereit?

Die Userform, die wir erstellen werden, sieht wie folgt aus:

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.

Dieses Userform besteht nur aus drei Controls. 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 Frame-Steuerelement 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 Feld Beschriftung, setzen Sie die Höhe auf 24 und die Breite auf 204.

4. Fügen Sie das erste Label-Steuerelement hinzu, und platzieren Sie es in dem Frame-Steuerelement. Klicken Sie mit der rechten Maustaste auf das Label-Steuerelement, und klicken Sie dann auf Eigenschaften. Ändern Sie den Namen in Bar, BackColor in Highlight, leeren Sie das Caption-Feld, setzen Sie Height auf 20 und Width auf 10.

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 Label-Steuerelement, 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 anderen Userform-Beispiele auf dieser Site durchgegangen sind, wissen Sie, dass dies die Zeit ist, die Sub UserForm_Initialize zu erstellen. Dieses Sub wird automatisch ausgeführt, wenn das Benutzerformular geladen wird. Wenn Sie also die Show-Methode für das Userform verwenden, wird der Code automatisch ausgeführt. Anstelle von Sub UserForm_Initialize erstellen wir die Sub UserForm_Activate. Durch die Verwendung dieses Unterordners kann Excel VBA das Benutzerformular aktualisieren, um den Fortschritt des Makros anzuzeigen.

8. Öffnen Sie den Visual Basic-Editor.

9. Klicken Sie im Projekt-Explorer 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

Erklärung: Dieses Sub ruft ein weiteres Sub namens Code auf, das wir gleich erstellen werden. Verwirrt? Sie können unser Kapitel „Funktion und Unter“ durchgehen, um mehr über Untergeordnete zu erfahren. Wenn Sie es eilig haben, führen Sie einfach die folgenden Schritte aus und alles wird gut.

12. Platzieren Sie den benannten Untercode in einem Modul (klicken Sie im Visual Basic-Editor auf Einfügen, Modul). Dies ist nur ein Beispiel. Dies ist DER Ort, um Ihren eigenen Code hinzuzufügen, wenn Sie diese Fortschrittsanzeige für Ihr eigenes Makro verwenden möchten. Der Code sieht wie folgt aus.

Untercode()
Dim i As Integer, j As Integer, pctCompl As Single
Sheet1.Cells.Clear
Für i = 1 bis 100
Für j = 1 bis 1000
Zellen(i, 1).Wert = j
Nächstes j
pctCompl = i
Fortschritt pctCompl
Als nächstes
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 eine Weile beschäftigen und uns die Möglichkeit geben, den Fortschritt des Makros zu sehen. Die Variable pctCompl (Abkürzung für PercentageCompleted) misst den Fortschritt des Makros. Schließlich rufen wir ein weiteres Sub namens progress auf und übergeben den Wert der Variablen pctCompl, um das Userform zu aktualisieren. Auf diese Weise können wir den Fortschritt des Makros sehen!

13. Fügen Sie ein weiteres Unter namens progress hinzu. Der Code sieht wie folgt aus:

Unterfortschritt (pctCompl als Single)
UserForm1.Text.Caption = pctCompl & "% abgeschlossen"
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:

Hinweis: Für dieses Makro haben wir die Variable i verwendet, um den Fortschritt zu messen. In Zeile 11 sind beispielsweise 10 % abgeschlossen. Dies kann bei Ihrem Makro anders sein. Die Methode, den Wert der Variablen pctCompl an den Unterfortschritt zu übergeben, um das Benutzerformular zu aktualisieren, bleibt gleich.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave