VBA Progress Bar

Excel VBA-förloppsindikator i Excel

Förloppsindikator är något som visar oss hur mycket av en process som har gjorts eller avslutats när vi kör stora uppsättningar koder som kräver längre tid att utföra. har flera processer som körs i en enda kod använder vi förloppsindikatorn för att visa vilken process som har utvecklats hur mycket.

En förloppsindikator visar procentandelen av uppgifter som utförts när den faktiska uppgiften körs bakom skärmen med en uppsättning instruktioner som ges av koden.

När det tar lång tid att utföra VBA-koden är det användarens ångest att veta hur snart den kan avslutas. Som standard måste vi vänta på heltid för att slutföra uppgiften, men genom att införa förloppsindikatorn får vi veta hur VBA-koden fortskrider.

I nästan all datorprogramvara ser vi ett framstegsdiagram som visar framstegen för den uppgift vi utför precis som bilden nedan.

Utöver det kan vi skapa framstegsfält genom att använda VBA-kodning. Om du någonsin har undrat hur vi kan skapa en förloppsindikator så är den här artikeln skräddarsydd för dig.

Du kan ladda ner den här VBA-framstegsmallen här - VBA-förloppsindikatormall

Skapa din egen förloppsindikator

För att skapa ett framstegsfält måste vi följa flera steg. Nedan följer stegen att involvera när du skapar förloppsindikatorn.

Steg 1: Skapa eller infoga ett nytt användarformulär.

Så snart du klickar på alternativet ovan ser du ett användarformulär som nedan.

Steg 2: Tryck på F4- tangenten för att se fönstret för VBA-egenskaper.

I den här fliken egenskaper måste vi ändra egenskaperna för VBA-användarformuläret vi har infogat.

Steg 3: Ändra namnet på användarformuläret till UFProgressBar.

Nu kan vi hänvisa detta användarformulär med namnet “UFProgressBar” under kodning.

Steg 4: Ändra Visa modellegenskap för användarformuläret till FALSKT.

Steg 5: Justera nu användarens inriktning så att den passar dina behov. Jag har ändrat höjden på användarformuläret till 120 och bredden till 300.

Steg 6: Ändra bildtexten för användarformuläret till "Status Status Bar".

Steg 7: Nu från verktygslådan i användarformuläret infoga LABEL till användarformuläret högst upp.

Med den här etiketten måste vi ställa in etikettens egenskaper. Ta bort bildtexten och gör den tom och justera etikettens bredd.

Steg 8: Ändra namnet på etiketten till “ProgessLabel”.

Steg 9: Ta nu ramen från verktygslådan och rita strax under etiketten som vi har satt in i föregående steg. Se till att ramen är i mitten av användarformuläret.

Steg 10: Nu måste vi ändra några av ramens egenskaper så att den ser exakt ut som användarformuläret vi har lagt in.

Egenskap 1: Ändra ramens namn till “ProgressFrame”.

Egenskap 2: Ta bort bildtexten och gör den tom.

Egenskap 3: Ändra ramens specialeffekt till 6 - fmSpecialEffectBump.

Efter alla dessa ändringar bör vårt användarformulär se ut så här.

Steg 11: Sätt nu in ytterligare en etikett. Den här gången sätter du in etiketten precis innanför ramen vi har satt in.

När du sätter in etiketten ska du se till att etikettens vänstra sida passar exakt till den ram som vi har satt i som visas i bilden ovan.

Steg 12: Ändra etikettens egenskaper på följande sätt efter att du har satt i etiketten.

Fastighet 1: Ändra namnet på etiketten till “MainProgressLabel”.

Egenskap 2: Ta bort bildtexten.

Fastighet 3: Ändra bakgrundsfärgen enligt dina önskemål.

Okej, nu är vi klara med att ställa in förloppsindikatorn och vid denna tidpunkt ser det ut så här.

Nu måste vi ange koder för att detta ska fungera perfekt.

Steg 13: För att göra ramverket lägg till nedanstående makro i Excel.

Koda:

 Sub InitUFProgressBarBar () With UFProgressBar .Bar.Width = 0 .Text.Caption = "0%". Visa vbModeless End With 

Obs: "UFProgressBar" är namnet på användarformuläret och "Bar" är namnet på den ram vi har skapat och "Text" är namnet på etiketten inuti ramen.

Nu om du kör den här koden manuellt eller via F5-tangenten, borde vi se förloppsindikatorn så här.

Step 14: Now we need to create a macro to perform our task. I am performing the task of inserting serial numbers from 1 to 5000. Along with this code, we need to configure the progress bar chart as well, below code is the tailor-made code for you.

Code:

 Sub ProgressBar_Chart() Dim i As Long Dim CurrentUFProgressBar As Double Dim UFProgressBarPercentage As Double Dim BarWidth As Long i = 1 Call InitUFProgressBarBar Do While i <= 5500 Cells(i, 1).Value = i CurrentUFProgressBar = i / 2500 BarWidth = UFProgressBar.Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round(CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% Complete" DoEvents i = i + 1 Loop Unload UFProgressBar End Sub