De StatusBar-eigenschap van het toepassingsobject in Excel VBA kan worden gebruikt om de voortgang van een lange macro aan te geven. Op deze manier kunt u de gebruiker laten weten dat er nog een macro actief is.
Situatie:
De macro die we gaan maken vult Range("A1:E20") met willekeurige getallen.
Voeg de volgende coderegels toe aan de opdrachtknop:
1. Eerst declareren we drie variabelen van het type Integer, genaamd i, j en pctCompl.
Dim i als geheel getal, j als geheel getal, pctCompl als geheel getal
2. Voeg een dubbele lus toe.
Voor i = 1 tot 20
Voor j = 1 tot 5
volgende j
volgende i
Voeg de volgende coderegels (bij 3, 4 en 5) toe aan de lus.
3. Gebruik de functie RandBetween om een willekeurig getal tussen 20 en 100 te importeren.
Cellen(i, j).Waarde = WerkbladFunctie.RandBetween(20, 100)
4. Initialiseer de variabele pctCompl. De tweede coderegel schrijft de waarde van de variabele pctCompl en wat beschrijvende tekst in de statusbalk.
pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Gegevens importeren… " & pctCompl & "% voltooid"
Voorbeeld: Voor i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% is voltooid.
5. We gebruiken de Wait-methode van het Application-object om een lange macro te simuleren.
Toepassing.Wacht nu + TimeValue ("00:00:01")
6. Als u de standaardtekst op de statusbalk wilt herstellen, stelt u de eigenschap StatusBar in op False (buiten de lus).
Application.StatusBar = False
Resultaat wanneer u op de opdrachtknop op het werkblad klikt:
Opmerking: u kunt een macro op elk moment onderbreken door op Esc of Ctrl + Break te drukken. Voor een meer visuele benadering, zie ons Progress Indicator-programma.