The Vlastnost StatusBar objektu aplikace v Excel VBA lze použít k označení průběhu dlouhého makra. Tímto způsobem můžete dát uživateli vědět, že makro stále běží.
Situace:
Makro, které vytvoříme, vyplní Rozsah („A1: E20“) náhodnými čísly.
Do příkazového tlačítka přidejte následující řádky kódu:
1. Nejprve deklarujeme tři proměnné typu Integer pojmenované i, j a pctCompl.
Dim i jako celé číslo, j jako celé číslo, pctCompl jako celé číslo
2. Přidejte dvojitou smyčku.
Pro i = 1 až 20
Pro j = 1 až 5
Další j
Příště já
Do smyčky přidejte následující řádky kódu (na 3, 4 a 5).
3. Pomocí funkce RandBetween importujte náhodné číslo mezi 20 a 100.
Buňky (i, j) .Hodnota = WorksheetFunction.RandBetween (20, 100)
4. Inicializujte proměnnou pctCompl. Druhý řádek kódu zapíše do stavového řádku hodnotu proměnné pctCompl a nějaký popisný text.
pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Import dat …" & pctCompl & "% dokončeno"
Příklad: Pro i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% bylo dokončeno.
5. K simulaci zdlouhavého makra používáme metodu Wait objektu Application.
Application.Wait Now + TimeValue ("00:00:01")
6. Chcete -li obnovit výchozí text stavového řádku, nastavte vlastnost StatusBar na hodnotu False (mimo smyčku).
Application.StatusBar = False
Výsledek po kliknutí na příkazové tlačítko na listu:
Poznámka: Makro můžete kdykoli přerušit stisknutím klávesy Esc nebo Ctrl + Break. Vizuálnější přístup naleznete v našem programu Indikátor průběhu.