/ / Indikátor pokroku v programe Excel VBA

Ukazovateľ pokroku v programe Excel VBA

Nižšie sa pozrieme na program v sekcii Excel VBA ktorý vytvorí ukazovateľ pokroku, Indikátor pokroku sme udržali čo najjednoduchšie, ale vyzerá to profesionálne. Ste pripravení?

Forma User, ktorú chceme vytvoriť, vyzerá takto:

Ukazovateľ pokroku v programe Excel VBA

Ak chcete vytvoriť tento Userform, vykonajte nasledujúce kroky.

1. Otvorte Editor jazyka. Ak nástroj Project Explorer nie je viditeľný, kliknite na položku Zobraziť, Project Explorer.

2. Kliknite na Insert, Userform. Ak sa panel nástrojov nezobrazí automaticky, kliknite na položku Zobraziť, panel s nástrojmi. Obrazovka by mala byť nastavená tak, ako je uvedené nižšie.

Nastavenie obrazovky používateľa v programe Excel VBA

Tento formát používateľa pozostáva len z troch ovládacích prvkov. Ovládanie rámu a dve ovládacie prvky na štítkoch.

3. Pridajte ovládací prvok rámčeka. Môžete to urobiť kliknutím na rámček v paneli s nástrojmi. Potom môžete pretiahnuť ovládací prvok rámca na Userform. Musíte zmeniť niektoré vlastnosti tohto ovládania rámca. Kliknite pravým tlačidlom myši na ovládací prvok rámčeka a potom kliknite na položku Vlastnosti. Vyprázdnite pole Nadpis, nastavte výšku na 24 a šírku na 204.

4. Pridajte prvý ovládač štítku a umiestnite ho do ovládacieho prvku rámčeka. Kliknite pravým tlačidlom myši na ovládací prvok označenia a potom kliknite na položku Vlastnosti. Zmeňte názov na hodnotu Bar, BackColor na zvýraznenie, vyprázdnite pole Titulok, nastavte výšku na 20 a šírku na 10.

5. Pridajte druhý ovládací prvok označenia a umiestnite ho nad ovládací prvok rámčeka. Kliknite pravým tlačidlom myši na ovládací prvok označenia a potom kliknite na položku Vlastnosti. Zmeňte názov na text a zmeňte titulok na hodnotu "0% dokončené".

6. Zmeňte popis súboru Userform na ukazovateľ pokroku.

Po dokončení tohto výsledku by mal byť výsledok v súlade s obrázkom užívateľa, ktorý je zobrazený skôr.

7. Na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúci riadok kódu, aby ste zobrazili Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ak ste prešli cez druhý Userformpríklady na tejto stránke, viete, že je čas vytvoriť Sub UserForm_Initialize. Tento podpis sa automaticky spustí vždy, keď sa naformuluje Userform. Ak použijete metódu Show for Userform, kód sa automaticky vykoná. Namiesto Sub UserForm_Initialize vytvoríme Sub UserForm_Activate. Pomocou tohto sub Excel VBA môže aktualizovať Userform ukázať pokrok makra.

8. Otvorte Editor jazyka.

9. V programe Project Explorer kliknite pravým tlačidlom na UserForm1 a potom kliknite na View Code.

10. V ľavom rozbaľovacom zozname vyberte položku Userform. V pravom rozbaľovacom zozname vyberte položku Aktivovať.

11. Pridajte nasledujúci riadok kódu:

Private Sub UserForm_Activate()

code

End Sub

vysvetlenie: toto submená volá ďalšie podmenu kód, ktorý budeme vytvárať za minútu. Zmätený? Môžete si prečítať kapitolu Funkcia a Sub, aby ste sa dozvedeli viac o podpore. Ak sa ponáhľate, stačí vykonať nasledujúce kroky a budete v poriadku.

12. Umiestnite podmenený kód do modulu (V editore jazyka kliknite na položku Vložiť, modul). Toto je len príklad. Toto je miesto, kde môžete pridať vlastný kód, ak chcete použiť tento ukazovateľ pokroku pre svoje vlastné makro. Kód vyzerá nasledovne.

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

Vysvetlenie: najprv inicializujeme niektoré premenné. Ďalej vyčisávame list1. Použijeme dvojitú slučku na zobrazenie hodnôt od 1 do 1000 v prvých 100 riadkoch pracovného hárka. To zabrzdí Excel VBA na chvíľu a dáva nám príležitosť vidieť priebeh makra. Premenná pctCompl (skratka pre %Completed) meria priebeh makra. Nakoniec zavoláme ďalšie podmenu s názvom Progress a prenesieme hodnotu premennej pctCompl na aktualizáciu Userform. Týmto spôsobom môžeme vidieť vývoj makra!

13. Pridajte ďalšie podmenu s názvom progress. Kód vyzerá takto:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Vysvetlenie: prvý riadok kódu zmení popis prvého ovládacieho prvku označenia. Druhý riadok kódu zmení šírku druhého ovládacieho prvku označenia. Pridať DoEvents na aktualizáciu formátu User.

14. Ukončite Editor jazyka a kliknite na príkazové tlačidlo na hárku:

výsledok:

Výsledek ukazovateľa pokroku

Poznámka: pre toto makro sme použili premennú i na meranie pokroku. Napríklad v riadku 11 sa dokončí 10%. Toto môže byť pre vaše makro iné. Technika prenosu hodnoty premennej pctCompl na podprogram na aktualizáciu Userform zostáva rovnaká.

Tiež si prečítajte: