/ / Pokazatelj napretka u programu Excel VBA

Pokazatelj napretka u programu Excel VBA

U nastavku ćemo pogledati program u Excel VBA koji stvara a pokazatelj napretka, Mi smo zadržali pokazatelj napretka što je jednostavnije moguće, ali ipak izgleda profesionalno. Jeste li spremni?

Korisnički obrazac koji ćemo stvoriti izgleda ovako:

Pokazatelj napretka u programu Excel VBA

Da biste stvorili ovaj Userform, izvršite sljedeće korake.

1. Otvorite Visual Basic Editor. Ako Project Explorer nije vidljiv, kliknite View, Project Explorer.

2. Kliknite Insert, Userform. Ako Toolbox ne pojavljuje automatski, kliknite View, Toolbox. Vaš bi se zaslon trebao postaviti kao u nastavku.

Postavljanje zaslona korisničkog formata u programu Excel VBA

Ovaj Userform sastoji se samo od tri kontrole. Kontrola okvira i dvije kontrole naljepnica.

3. Dodajte kontrolu okvira. To možete učiniti klikom na Frame iz Toolboxa. Zatim možete povući kontrolu okvira na korisničkom obrascu. Morate promijeniti neke osobine ove kontrole okvira. Desnim klikom miša kliknite kontrolu okvira, a zatim kliknite Svojstva. Ispraznite polje opisa, postavite visinu na 24 i širinu do 204.

4. Dodajte prvu kontrolnu oznaku i smjestite je u okvir kontrolu. Desnim klikom miša kliknite kontrolu oznake, a zatim kliknite Svojstva. Promijenite naziv na Bar, BackColor na Highlight, ispravi polje s opcijama, postavite visinu do 20 i širinu do 10.

5. Dodajte drugu kontrolnu oznaku i postavite je iznad okvira Control. Desnim klikom miša kliknite kontrolu oznake, a zatim kliknite Svojstva. Promijenite naziv u tekst i promijenite naslov na "0% dovršeno".

6. Promijenite naslov Userform do Indicator Napredno.

Kada to završi, rezultat bi trebao biti u skladu s prethodno prikazanom korisničkom obrascu.

7. Postavite gumb naredbe na svoj radni list i dodajte sljedeću liniju koda za prikaz Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ako ste prošli kroz drugi Userformprimjeri na ovoj web stranici, znate da je ovo vrijeme za stvaranje Sub UserForm_Initialize. Taj se pod pokreće automatski kad god je umetnut Userform. Stoga, kada koristite metodu Show za Userform, kôd će se automatski izvršiti. Umjesto Sub UserForm_Initialize, kreiramo Sub UserForm_Activate. Koristeći ovaj podrazred, Excel VBA može ažurirati Userform kako bi prikazao napredak makronaredbe.

8. Otvorite Visual Basic Editor.

9. U Project Exploreru desnom tipkom miša kliknite UserForm1 i zatim kliknite View Code.

10. Na lijevom padajućem popisu odaberite Userform. Iz padajućeg popisa s desne strane odaberite Aktiviraj.

11. Dodajte sljedeću liniju koda:

Private Sub UserForm_Activate()

code

End Sub

Obrazloženje: ovaj pod naziva drugi pod podudaran kôd koji ćemo stvoriti za minutu. Zbunjeni? Možete proći kroz našu funkciju i pod poglavlje da biste saznali više o subs. Ako ste u žurbi, samo izvršite sljedeće korake i bit ćete u redu.

12. Upišite kod pod naziva u modul (u Visual Basic Editoru kliknite Insert, Module). Ovo je samo jedan primjer. Ovo je mjesto za dodavanje vlastitog koda kada želite koristiti taj pokazatelj napretka za svoju makronaredbu. Kôd izgleda ovako:

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

Objašnjenje: prvo inicijaliziramo neke varijable. Zatim ćemo razriješiti sheet1. Koristimo dvostruku petlju da bismo prikazali vrijednosti od 1 do 1000 u prvih 100 redaka radnog lista. To će zadržati Excel VBA zauzet neko vrijeme i daje nam priliku vidjeti napredak makronaredbe. Varijabla pctCompl (kratica za percentageCompleted) mjeri napredak makronaredbe. Konačno, pozivamo drugi pod nazivom napredak i proslijedimo vrijednost varijable pctCompl za ažuriranje Userform. Na taj način možemo vidjeti napredak makronaredbe!

13. Dodajte još jedan potpis pod nazivom napredak. Kôd izgleda ovako:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Objašnjenje: prva linija koda mijenja naslov prvog kontrolnog znaka. Druga linija koda mijenja širinu druge kontrolne oznake. Dodajte DoEvents da biste ažurirali Userform.

14. Izađite iz Visual Basic Editor i kliknite gumb naredbe na listu:

Proizlaziti:

Rezultat indikatora napretka

Bilješka: za ovu makronaredbu upotrijebili smo varijablu i za mjerenje napretka. Na primjer, u retku 11, 10% je dovršeno. To može biti različito za vašu makronaredbu. Tehnika prolaska vrijednosti varijable pctCompl u sub napredak za ažuriranje Userforma ostaje ista.

Također pročitajte: