/ / Ukazatel pokroku v aplikaci Excel VBA

Indikátor pokroku v aplikaci Excel VBA

Níže se podíváme na program v Excel VBA který vytvoří indikátor průběhu. Měli jsme ukazatel pokroku co nejjednodušší, ale vypadá profesionálně. Jste připraveni?

Uživatelský formulář, který vytvoříme, vypadá takto:

Indikátor pokroku v aplikaci Excel VBA

Chcete-li vytvořit tento Userform, proveďte následující kroky.

1. Otevřete editor jazyka. Pokud aplikace Project Explorer není viditelná, klepněte na tlačítko Zobrazit, Project Explorer.

2. Klepněte na tlačítko Vložit, Formát uživatele. Pokud se panel nástrojů nezobrazí automaticky, klikněte na tlačítko Zobrazit, panel nástrojů. Vaše obrazovka by měla být nastavena níže.

Uživatelské nastavení obrazovky v aplikaci Excel VBA

Tento uživatelský formulář se skládá pouze ze tří ovládacích prvků. Ovládací prvek rámečků a dva ovládací prvky štítků.

3. Přidejte ovládací prvek rámečku. Můžete to udělat kliknutím na rámeček v panelu nástrojů. Dále můžete přetáhnout ovládací prvek rámečku na Userform. Musíte změnit některé vlastnosti tohoto řízení snímků. Klikněte pravým tlačítkem myši na ovládací prvek rámečku a pak klikněte na Vlastnosti. Vyprázdněte pole Titulek, nastavte výšku na 24 a šířku na 204.

4. Přidejte první ovládací prvek štítku a vložte jej do ovládacího prvku rámečku. Klepněte pravým tlačítkem myši na ovládací prvek štítku a potom klepněte na položku Vlastnosti. Změňte název na Bar, BackColor na Zvýraznění, vyprázdněte pole Titulek, nastavte výšku na 20 a šířku na 10.

5. Přidejte druhý ovládací prvek a umístěte jej nad ovládací prvek rámečku. Klepněte pravým tlačítkem myši na ovládací prvek štítku a potom klepněte na položku Vlastnosti. Změňte název na text a změňte název na "0% dokončeno".

6. Změňte popis souboru Userform na indikátor pokroku.

Jakmile je tento postup dokončen, výsledek by měl být v souladu s obrázkem výše uvedeného formuláře User.

7. Na pracovním listu umístěte příkazové tlačítko a přidejte následující řádek kódů pro zobrazení Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Pokud jste prošli jiným uživatelským formulářempříklady na tomto webu, víte, že je čas vytvořit Sub UserForm_Initialize. Tento Sub běží automaticky při každém načtení Userformu. Pokud tedy použijete metodu Show for Userform, bude kód automaticky proveden. Namísto Sub UserForm_Initialize vytvoříme Sub UserForm_Activate. Pomocí této podřízené aplikace Excel VBA může aktualizovat Userform zobrazit průběh makra.

8. Otevřete editor jazyka.

9. V Průzkumníku projektu klepněte pravým tlačítkem na UserForm1 a potom klepněte na tlačítko Zobrazit kód.

10. V levé rozevírací nabídce zvolte položku Formát uživatele. V pravém rozevíracím seznamu vyberte možnost Aktivovat.

11. Přidejte následující kódový řádek:

Private Sub UserForm_Activate()

code

End Sub

Vysvětlení: toto dílčí číslo nazývá další podmenu kód, který vytvoříme za minutu. Zmatený? Můžete se podívat na naši kapitolu Funkce a kapitola a dozvědět se více o subs. Pokud máte spěch, stačí provést následující kroky a budete v pořádku.

12. Umístěte podmenu kód do modulu (V editoru jazyka klepněte na tlačítko Vložit, modul). To je jen příklad. Toto je místo pro přidání vlastního kódu, chcete-li použít tento ukazatel pokroku pro vlastní makro. Kód vypadá následovně.

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

Vysvětlení: Nejprve inicializujeme některé proměnné. Dále vyčistíme list1. Použijeme dvojitou smyčku pro zobrazení hodnot od 1 do 1000 v prvních 100 řádcích listu. To zabrání práci VBA aplikace Excel na chvíli a dává nám příležitost vidět vývoj makra. Proměnná pctCompl (zkratka pro percentageCompleted) měří průběh makra. Nakonec voláme další podprogram nazvaný pokrok a předáme hodnotu proměnné pctCompl k aktualizaci Userform. Tímto způsobem můžeme vidět vývoj makra!

13. Přidejte další podmenu s názvem Progress. Kód vypadá následovně:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

Vysvětlení: první řádek kódu mění popis prvního ovládacího prvku štítku. Druhý řádek kódu mění šířku druhého ovládacího prvku popisku. Přidat DoEvents k aktualizaci Userform.

14. Ukončete Editor jazyka a klepněte na příkazové tlačítko na listu:

Výsledek:

Výsledek indikátoru pokroku

Poznámka: pro toto makro jsme použili proměnnou i k měření pokroku. Například v řádku 11 je dokončeno 10%. Toto může být pro vaše makro jiné. Technika předávání hodnoty proměnné pctCompl podprogramu k aktualizaci Userform zůstává stejná.

Také si přečtěte: