/ / Progress-indikaattori Excel VBA: ssa

Etenemisindikaattori Excel VBA: ssa

Alla tarkastelemme ohjelmaa Excel VBA joka luo a edistymisindikaattori. Olemme pitäneet edistymisindikaattoria niin yksinkertaisina kuin mahdollista, mutta se näyttää ammattimaiselta. Oletko valmis?

Käyttäjäformaatti, jonka aiomme luoda, näyttää seuraavaa:

Etenemisindikaattori Excel VBA: ssa

Tee tämä Käyttäjäluettelo seuraavasti.

1. Avaa Visual Basic -editori. Jos Project Explorer ei ole näkyvissä, valitse View, Project Explorer.

2. Napsauta Insert, Userform. Jos työkalupakki ei tule näkyviin automaattisesti, valitse Näytä, työkalupakki. Näyttösi on määritettävä alla.

Userform-näytön asetukset Excel VBA: ssa

Tämä käyttöohje koostuu vain kolmesta ohjauksesta. Kehyksenhallinta ja kaksi tarraohjausta.

3. Lisää kehyksen hallinta. Voit tehdä tämän napsauttamalla Kehys työkalupakista. Seuraavaksi voit vetää kehyksen hallinnan Userform-muodossa. Sinun on muutettava tämän kehyksen ohjauksen ominaisuuksia. Napsauta hiiren kakkospainikkeella kehysohjausta ja valitse sitten Ominaisuudet. Tyhjennä Kuvat-kenttä, aseta Korkeus 24 ja Leveys kohtaan 204.

4. Lisää ensimmäinen etikettiohjaus ja aseta se Frame-ohjaukseen. Napsauta hiiren kakkospainikkeella tarraohjausta ja valitse sitten Ominaisuudet. Muuta nimi Bar, BackColor Korosta, tyhjennä Kuvateksti, aseta Korkeus 20 ja Leveys 10.

5. Lisää toinen etikettiohjaus ja aseta se runko-ohjauksen yläpuolelle. Napsauta hiiren kakkospainikkeella tarraohjausta ja valitse sitten Ominaisuudet. Vaihda nimi Tekstiin ja muuta Kuvatunnukseksi "0% Valmis".

6. Muuta käyttäjätunnuksen otsikkoa edistyksen ilmaisimeen.

Kun tämä on saatu päätökseen, tuloksen on oltava johdonmukainen aikaisemmin esitetyn käyttäjätiedon kuvan kanssa.

7. Aseta komentopainike laskentatauluun ja lisää seuraava koodi rivi näyttämään Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Jos olet käynyt läpi toisen käyttäjätunnuksenesimerkkejä tällä sivustolla, tiedät, että tämä on aika luoda Sub UserForm_Initialize. Tämä sub toimii automaattisesti, kun Userform on ladattu. Näin ollen, kun käytät Userformin Show-menetelmää, koodi suoritetaan automaattisesti. Sub UserForm_Initialize -ohjelman sijasta luodaan Sub UserForm_Activate. Käyttämällä tätä osaa Excel VBA voi päivittää Userform-ohjelman ja näyttää makron edistymisen.

8. Avaa Visual Basic -editori.

9. Napsauta Project Explorer -ohjelmaa hiiren kakkospainikkeella UserForm1 ja sen jälkeen Näytä koodi.

10. Valitse vasemmalta avattavasta luettelosta Userform. Valitse Aktivoi oikealta avattavasta luettelosta.

11. Lisää seuraava koodirivi:

Private Sub UserForm_Activate()

code

End Sub

Selitys: tämä osa kutsuu toisen ali-nimisen koodin, jonka aiomme luoda minuutissa. Hämmentynyt? Voit siirtyä toiminto- ja alaryhmän läpi saadaksesi lisätietoja subsista. Jos olet kiire, suorita vain seuraavat vaiheet ja olet kunnossa.

12. Aseta osa nimeltä oleva koodi moduuliin (valitse Visual Basic Editorissa Insert, Module). Tämä on vain esimerkki. Tämä on paikka, jolla voit lisätä oman koodisi, kun haluat käyttää tätä makron makron indikaattoria. Koodi näyttää seuraavanlaiseksi.

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

Selitys: aluksi alustetaan joitain muuttujia. Seuraavaksi selvitämme arkki1. Käytämme kaksinkertaista silmukkaa näyttämään arvot 1 - 1000 ensimmäisten 100 riviä laskentataulukossa. Tämä pitää Excel VBA: n varattu jonkin aikaa ja antaa meille mahdollisuuden nähdä makron etenemisen. Muuttuja pctCompl (lyhenne prosenttiosuudesta) mittaa makron edistymistä. Lopuksi kutsutamme toisen edistyksen osaa ja siirrämme muuttujan pctCompl arvon päivittämään Userform. Näin voimme nähdä makron edistymisen!

13. Lisää toinen nimetty progressiivinen osa. Koodi näyttää seuraavasti:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Selitys: ensimmäinen koodirivi muuttaa ensimmäisen otsikon ohjauksen otsikkoa. Toinen koodirivi muuttaa toisen leimaohjauksen leveyttä. Lisää DoEventsin Userformin päivittämiseen.

14. Poistu Visual Basic -editorista ja napsauta komentopainiketta arkistossa:

Tulos:

Edistymisindikaattorin tulos

Huomautus: Tätä makroa varten käytimme muuttuja i mittaamaan edistystä. Esimerkiksi rivillä 11, 10% on valmis. Tämä voi olla erilainen makroasemassasi. Tekniikka, jolla siirrytään muuttujan pctCompl arvo alikulkuun Userformin päivittämiseksi, pysyy samana.

Lue myös: