/ / Fremdriftsindikator i Excel VBA

Fremdriftsindikator i Excel VBA

Nedenfor ser vi på et program i Excel VBA som skaper en fremdriftsindikator. Vi har holdt fremdriftsindikatoren så enkel som mulig, men det ser profesjonelt ut. Er du klar?

Brukerformen vi skal lage, ser ut som følger:

Fremdriftsindikator i Excel VBA

For å opprette denne brukerformen, utfør følgende trinn.

1. Åpne Visual Basic Editor. Hvis Project Explorer ikke er synlig, klikker du på Vis, Project Explorer.

2. Klikk på Sett inn, Brukerform. Hvis Verktøykassen ikke vises automatisk, klikker du på Vis, Verktøykasse. Skjermen din bør settes opp som nedenfor.

Userform Screen Setup i Excel VBA

Denne brukerformen består bare av tre kontroller. En rammekontroll og to etikettkontroller.

3. Legg til rammekontrollen. Du kan gjøre dette ved å klikke på Ramme fra Verktøykassen. Deretter kan du dra en rammekontroll på Userform. Du må endre noen egenskaper av denne ramkontrollen. Høyreklikk på rammekontrollen, og klikk deretter på Egenskaper. Tøm bildetekstfeltet, sett høyden til 24 og bredde til 204.

4. Legg til den første etikettkontrollen og legg den i rammekontrollen. Høyreklikk på etikettkontrollen, og klikk deretter på Egenskaper. Endre navnet til Bar, BackColor til Highlight, tøm bildetekstfeltet, sett høyden til 20 og Bredde til 10.

5. Legg til den andre etikettkontrollen og legg den over rammekontrollen. Høyreklikk på etikettkontrollen, og klikk deretter på Egenskaper. Endre navnet til Tekst og endre bildeteksten til "0% Fullført".

6. Endre bildeteksten til Userform til Progress Indicator.

Når dette er fullført, bør resultatet være i tråd med bildet av brukerformen som ble vist tidligere.

7. Plasser en kommandoknapp på regnearket og legg til følgende kodelinje for å vise brukerformatet:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Hvis du har gått gjennom den andre brukerformeneksempler på dette nettstedet, vet du at dette er på tide å lage Sub UserForm_Initialize. Denne delen går automatisk når brukerformatet er lastet inn. Når du bruker Show-metoden for brukerformen, vil koden automatisk bli utført. I stedet for Sub UserForm_Initialize oppretter vi Sub UserForm_Activate. Ved å bruke denne delen kan Excel VBA oppdatere brukerformatet for å vise fremdriften til makroen.

8. Åpne Visual Basic Editor.

9. I Project Explorer, høyreklikk på UserForm1 og klikk deretter Vis kode.

10. Velg Brukerform fra rullegardinlisten til venstre. Velg Aktiver fra den høyre rullegardinlisten.

11. Legg til følgende kodelinje:

Private Sub UserForm_Activate()

code

End Sub

Forklaring: dette underkaller en annen underkoden vi skal lage om et minutt. Forvirret? Du kan gå gjennom vårt funksjons- og underkapittel for å lære mer om subs. Hvis du har det travelt, må du bare utføre følgende trinn, og du vil ha det bra.

12. Plasser den undernavngitte koden i en modul (I Visual Basic Editor klikker du Insert Insert, Module). Dette er bare et eksempel. Dette er stedet å legge til din egen kode når du vil bruke denne fremdriftsindikatoren for din egen makro. Koden ser ut som følger.

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

Forklaring: Først starter vi noen variabler. Deretter fjerner vi ark1. Vi bruker en dobbel sløyfe til å vise verdiene fra 1 til 1000 i de første 100 radene i regnearket. Dette vil holde Excel VBA opptatt en stund og gir oss muligheten til å se makroens fremgang. Variabeln pctCompl (forkortelse for prosentvis fullført) måler makroens fremgang. Til slutt kaller vi en annen under navngitt fremgang og overfører verdien av variabelen pctCompl for å oppdatere brukerformen. På denne måten kan vi se makroens fremgang!

13. Legg til en annen under navngitt fremgang. Koden ser ut som følger:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Forklaring: Den første kodelinjen endrer bildeteksten av den første etikettkontrollen. Den andre kodelinjen endrer bredden på den andre etikettkontrollen. Legg til DoEvents for å oppdatere brukerformen.

14. Avslutt Visual Basic Editor og klikk på kommandoknappen på arket:

Resultat:

Resultatresultatindikator

Merk: For denne makroen brukte vi variabelen jeg til å måle fremdriften. For eksempel, i rad 11, er 10% fullført. Dette kan være forskjellig for makroen din. Teknikken for å overføre verdien av variabelen pctCompl til sub-fremdriften for å oppdatere brukerformen forblir den samme.

Les også: