Erstellen Sie einen Fortschrittsbalken in Excel VBA
Visual Basic for Applications ist eine ereignisgesteuerte Programmiersprache, die für Microsoft-Anwendungen verwendet wird. Es ermöglicht Benutzern, Aufgaben zu automatisieren und mehrere Funktionalitäten entsprechend ihren Anforderungen neu zu schreiben.
VBA ermöglicht es dem Benutzer, mehrere Aufgaben mit Hilfe einiger Codeanweisungen auszuführen, die in Form eines Makros gespeichert sind. Das Makro ermöglicht es dem Benutzer, den Code immer wieder zu verwenden.
Fortschrittsbalken in Microsoft Excel
Daten werden in Microsoft Excel ständig manipuliert. Das Hochladen von Daten aus einer Datenbank, das Bearbeiten der Datensätze und das Zusammenfassen der Ergebnisse sind die häufigsten Anwendungen von Microsoft Excel, insbesondere in Unternehmen.
Microsoft Excel bietet leistungsstarke Tools, um alle Aufgaben mit Hilfe grundlegender Funktionalitäten zu erledigen. Um auf den Grundfunktionalitäten von Microsoft Excel aufzubauen, wird VBA verwendet.
VBA ist eine hervorragende Option zur Automatisierung verschiedener Aufgaben. Es ermöglicht Ihnen, auf den Grundfunktionen von Microsoft Excel aufzubauen und ein Programm speziell für Ihre Bedürfnisse zu erstellen.
Das Erstellen eines Fortschrittsbalkens in VBA ist ganz einfach. Es ermöglicht Ihnen, Ihre Aktivitäten zu verfolgen.
Sie können den Fortschritt überwachen und damit parallele Aufgaben ausführen. Mit Hilfe eines Fortschrittsbalkens können Sie mehrere Aufgaben gleichzeitig verfolgen.
Die kleine Hinzufügung eines Fortschrittsbalkens kann einen großen Unterschied in der Effizienz Ihrer Programme machen. Es ermöglicht Ihnen, Aufgaben effizienter auszuführen.
So erstellen Sie einen Fortschrittsbalken in Excel
Mit UserForm
in Microsoft Excel können Sie mithilfe des progressbar
-Steuerelements einen Fortschrittsbalken für Ihr Blatt erstellen. Um den erstellten Fortschrittsbalken jedoch kontinuierlich zu aktualisieren, müssen einige Codeanweisungen verknüpft werden, die diese Aufgabe übernehmen.
Dieser Artikel erwähnt zwei Methoden zum Erstellen eines Fortschrittsbalkens in Microsoft Excel.
Nummerierter Fortschrittsbalken
Diese Lösung ist ideal für Sie, wenn Sie keinen schicken Fortschrittsbalken erstellen möchten. Ein nummerierter Fortschrittsbalken zeigt die Ausgabe folgendermaßen an:
Um diesen einfachen Fortschrittsbalken in Microsoft Excel zu implementieren, verwenden Sie den folgenden Code:
Dim i As Integer
'Change the loop according to your requirements
For i = 1 To 1500
'Perform the tasks here
'Update the progress bar
Application.StatusBar = "Progress: " & x & " of 1500: " & Format(x / 1500, "0%")
Next x
Application.StatusBar = False
Ein nummerierter Fortschrittsbalken ist recht einfach zu implementieren. Es erfordert keinen großen Aufwand und funktioniert einwandfrei.
Ausgefallener Fortschrittsbalken
Diese Lösung ist ideal, wenn Sie einen schicken Fortschrittsbalken entwerfen möchten. Die StatusBar
in Excel ist mit Unicode-Zeichen als Fortschrittsbalken getarnt.
Als Balken werden die Unicode-Zeichen im Bereich 9608
bis 9615
verwendet. Sie können ein Zeichen aus der Reihe auswählen.
Die Länge des Fortschrittsbalkens wird durch die Variable lent
im Code definiert.
' ProgressBar Class Module
Option Explicit
Private Const lent As Integer = 50
Private Const maxlent As Integer = 255
Private charBar As String
Private charSpace As String
Private statusBarVar As Boolean
Private enableEventsVar As Boolean
Private screenUpdatingVar As Boolean
Private Sub initialization()
' The initial state of the variables is saved for the progress bars
charBar = ChrW(9608)
charSpace = ChrW(9620)
statusBarVar = Application.DisplayStatusBar
enableEventsVar = Application.EnableEvents
screenUpdatingVar = Application.ScreenUpdating
Application.DisplayStatusBar = True
Application.ScreenUpdating = False
Application.EnableEvents = False
End Sub
Private Sub classend()
' Restore all the settings
Application.DisplayStatusBar = statusBarVar
Application.ScreenUpdating = screenUpdatingVar
Application.EnableEvents = enableEventsVar
Application.StatusBar = False
End Sub
Public Sub Update(ByVal Value As Long, _
Optional ByVal MaxValue As Long= 0, _
Optional ByVal Status As String = "", _
Optional ByVal DisplayPercent As Boolean = True)
If Value < 0 Or MaxValue < 0 Or (Value > 100 And MaxValue = 0) Then Exit Sub
' If the maximum is set, then adjust the value to be in the range of 0 to 100
If MaxValue > 0 Then Value = WorksheetFunction.RoundUp((Value * 100) / MaxValue, 0)
' Message to set the status bar to
Dim display As String
display = Status & " "
' Set bars
display = display & String(Int(Value / (100 / lent)), charBar)
' set spaces
display = display & String(lent - Int(Value / (100 / lent)), charSpace)
' Closing character to show the end of the bar
display = display & charBar
If DisplayPercent = True Then display = display & " (" & Value & "%) "
' chop off to the maximum length if necessary
If Len(display) > maxlent Then display = Right(display, maxlent)
Application.StatusBar = display
End Sub
Der oben erwähnte Code setzt die Initialwerte der Funktionen DisplayStatusBar
auf True
, ScreenUpdating
auf False
und EnableEvents
auf False
.
Die Unterroutine Update()
bearbeitet die Anzeige des Fortschrittsbalkens in Abhängigkeit von den empfangenen Parametern.
Die Unterroutine classend()
setzt die Werte der Funktionalitäten DisplayStatusBar
, ScreenUpdating
und EnableEvents
zurück.
Verwenden Sie den folgenden Code, um eine Instanz der Klasse zu erstellen:
Dim fancyProgressBar As New ProgressBar
Dim i As Integer
For i = 1 To 100
Call fancyProgressBar.Update(i, 100, "Progress Bar", True)
' Required tasks can be mentioned here
Next i
Sie können mit den Unicode-Zeichen experimentieren, um verschiedene Fortschrittsbalken zu entwerfen. Der Bereich 9608
bis 9615
hat verschiedene Designs für den Fortschrittsbalken mit unterschiedlichen Abständen.
Experimentieren Sie mit den Variablen, um einen benutzerdefinierten Fortschrittsbalken für sich selbst zu entwerfen.
Abschluss
Ein Fortschrittsbalken ist super hilfreich, wenn mehrere Aufgaben parallel laufen. Es ermöglicht Ihnen, die Aktivität der Aufgaben nebeneinander zu verfolgen.
Darüber hinaus können Sie auch den Zeitaufwand für die verschiedenen Aufgaben messen. So können Sie die Aufgaben optimal einplanen.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub