Barra di avanzamento VBA

Barra di avanzamento VBA di Excel in Excel

La barra di avanzamento è qualcosa che ci mostra quanto di un processo è stato fatto o terminato quando eseguiamo grandi set di codici che richiedono un tempo maggiore per l'esecuzione, utilizziamo la barra di avanzamento in VBA per mostrare all'utente lo stato del processo o se lo facciamo avere più processi in esecuzione in un unico codice usiamo la barra di avanzamento per mostrare quale processo è progredito di quanto.

Una barra di avanzamento mostra la percentuale di attività completate quando l'attività effettiva è in esecuzione dietro lo schermo con una serie di istruzioni fornite dal codice.

Quando l'esecuzione del codice VBA richiede una notevole quantità di tempo, è l'ansia dell'utente sapere quanto presto può finire. Per impostazione predefinita, dobbiamo attendere il tempo pieno per completare l'attività ma inserendo la barra di avanzamento conosciamo lo stato di avanzamento del codice VBA.

In quasi tutti i software per computer vediamo un grafico a barre di avanzamento che mostra lo stato di avanzamento dell'attività che stiamo eseguendo proprio come l'immagine sottostante.

In Excel possiamo creare la barra di avanzamento utilizzando la codifica VBA. Se ti sei mai chiesto come possiamo creare una barra di avanzamento, questo è l'articolo su misura per te.

Puoi scaricare questo modello di barra di avanzamento VBA qui - Modello barra di avanzamento VBA

Crea la tua barra di avanzamento

Per creare una barra di avanzamento, dobbiamo seguire diversi passaggi. Di seguito sono riportati i passaggi da coinvolgere durante la creazione del grafico a barre di avanzamento.

Passaggio 1: crea o inserisci un nuovo modulo utente.

Non appena fai clic sull'opzione sopra, vedrai un modulo utente come il seguente.

Passaggio 2: premere il tasto F4 per visualizzare la finestra delle proprietà VBA.

In questa scheda delle proprietà, dobbiamo modificare le proprietà del modulo utente VBA che abbiamo inserito.

Passaggio 3: modificare il nome del modulo utente in UFProgressBar.

Ora possiamo fare riferimento a questo modulo utente con il nome "UFProgressBar" durante la codifica.

Passaggio 4: modificare la proprietà Mostra modello del modulo utente su FALSO.

Passaggio 5: ora regola l'allineamento dell'utente da in base alle tue esigenze. Ho modificato l'altezza del modulo utente a 120 e la larghezza a 300.

Passaggio 6: modificare la didascalia del modulo utente in "Barra di stato di avanzamento".

Passaggio 7: ora dalla casella degli strumenti del modulo utente inserire ETICHETTA nel modulo utente in alto.

Con questa etichetta, dobbiamo impostare le proprietà dell'etichetta. Elimina la didascalia e rendila vuota e regola la larghezza dell'etichetta.

Passaggio 8: modificare il nome dell'etichetta in "ProgessLabel".

Passaggio 9: Ora dalla casella degli strumenti prendi la cornice e disegna appena sotto l'etichetta che abbiamo inserito nei passaggi precedenti. Assicurati che la cornice sia al centro del modulo utente.

Passaggio 10: Ora dobbiamo modificare alcune delle proprietà del Frame per farlo sembrare esattamente uguale al modulo utente che abbiamo inserito.

Proprietà 1: cambia il nome del frame in "ProgressFrame".

Proprietà 2: elimina la didascalia e rendila vuota.

Proprietà 3: Cambia l'effetto speciale del fotogramma in 6 - fmSpecialEffectBump.

Dopo tutte queste modifiche, il nostro modulo utente dovrebbe essere simile a questo.

Passaggio 11: ora inserisci un'altra etichetta. Questa volta inseriamo l'etichetta appena dentro la cornice che abbiamo inserito.

Durante l'inserimento dell'etichetta assicurarsi che il lato sinistro dell'etichetta corrisponda esattamente al telaio che abbiamo inserito come mostrato nell'immagine sopra.

Passaggio 12: dopo aver inserito l'etichetta, modificare le proprietà dell'etichetta come segue.

Proprietà 1: cambia il nome dell'etichetta in "MainProgressLabel".

Proprietà 2: elimina la didascalia.

Proprietà 3: cambia il colore di sfondo secondo i tuoi desideri.

Ok, ora abbiamo finito con il processo di impostazione della barra di avanzamento e, a questo punto, appare così.

Ora dobbiamo inserire i codici per farlo funzionare perfettamente.

Passaggio 13: per rendere il framework aggiungere la macro sottostante in Excel.

Codice:

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

Nota: "UFProgressBar" è il nome dato al modulo utente e "Bar" è il nome dato al frame che abbiamo creato e "Text" è il nome dato all'etichetta all'interno del frame.

Ora, se esegui questo codice manualmente o tramite il tasto F5, dovremmo vedere la barra di avanzamento come questa.

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