/ / / Δείκτης προόδου στο Excel VBA

Δείκτης προόδου στο Excel VBA

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA που δημιουργεί ένα δείκτη προόδου. Έχουμε διατηρήσει την ένδειξη προόδου όσο πιο απλή γίνεται, αλλά φαίνεται επαγγελματική. Είστε έτοιμοι;

Το Userform που πρόκειται να δημιουργήσουμε φαίνεται ως εξής:

Δείκτης προόδου στο Excel VBA

Για να δημιουργήσετε αυτό το Userform, εκτελέστε τα παρακάτω βήματα.

1. Ανοίξτε τον Επεξεργαστή Visual Basic. Εάν το Explorer του έργου δεν είναι ορατό, κάντε κλικ στην επιλογή Προβολή, Εξερεύνηση έργου.

2. Κάντε κλικ στην επιλογή Εισαγωγή, Χρήστης. Εάν η Εργαλειοθήκη δεν εμφανίζεται αυτόματα, κάντε κλικ στην επιλογή Προβολή, Εργαλειοθήκη. Η οθόνη σας πρέπει να ρυθμιστεί ως εξής.

Οθόνη ρύθμισης παραμέτρων χρήστη στο Excel VBA

Αυτός ο τύπος χρήστη αποτελείται μόνο από τρία στοιχεία ελέγχου. Έλεγχος πλαισίου και δύο χειριστήρια ετικέτας.

3. Προσθέστε το πλαίσιο ελέγχου πλαισίου. Μπορείτε να το κάνετε κάνοντας κλικ στο πλαίσιο από την Εργαλειοθήκη. Στη συνέχεια, μπορείτε να σύρετε ένα στοιχείο πλαισίου στο Userform. Πρέπει να αλλάξετε κάποιες ιδιότητες αυτού του πλαισίου ελέγχου. Κάντε δεξί κλικ με το ποντίκι στο πλαίσιο ελέγχου και, στη συνέχεια, κάντε κλικ στην επιλογή Ιδιότητες. Αδειάστε το πεδίο Caption, ορίστε το Ύψος σε 24 και το Πλάτος σε 204.

4. Προσθέστε το πρώτο στοιχείο ελέγχου ετικέτας και τοποθετήστε το στο στοιχείο ελέγχου πλαισίου. Κάντε δεξί κλικ με το ποντίκι στο στοιχείο ελέγχου ετικέτας και, στη συνέχεια, κάντε κλικ στην επιλογή Ιδιότητες. Αλλάξτε το όνομα σε Bar, BackColor στο Highlight, αδειάστε το πεδίο Caption, ορίστε το Ύψος σε 20 και το Πλάτος σε 10.

5. Προσθέστε το δεύτερο στοιχείο ελέγχου ετικέτας και τοποθετήστε το πάνω από το πλαίσιο ελέγχου πλαισίου. Κάντε δεξί κλικ με το ποντίκι στο στοιχείο ελέγχου ετικέτας και, στη συνέχεια, κάντε κλικ στην επιλογή Ιδιότητες. Αλλάξτε το όνομα σε κείμενο και αλλάξτε τη λεζάντα στο "0% ολοκληρώθηκε".

6. Αλλάξτε τη λεζάντα του Userform σε δείκτη προόδου.

Μόλις ολοκληρωθεί αυτό το αποτέλεσμα, το αποτέλεσμα πρέπει να είναι συνεπές με την εικόνα του Userform που παρουσιάστηκε νωρίτερα.

7. Τοποθετήστε ένα κουμπί εντολής στο φύλλο εργασίας σας και προσθέστε την ακόλουθη γραμμή κώδικα για να εμφανίσετε το Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Αν έχετε περάσει από το άλλο Userformπαραδείγματα σε αυτόν τον ιστότοπο, γνωρίζετε ότι είναι η ώρα να δημιουργήσετε το Sub UserForm_Initialize. Αυτό το υποσύστημα εκτελείται αυτόματα κάθε φορά που φορτώνεται το Userform. Έτσι, όταν χρησιμοποιείτε τη μέθοδο εμφάνισης για τη φόρμα χρήστη, ο κώδικας θα εκτελεστεί αυτόματα. Αντί του Sub UserForm_Initialize, δημιουργούμε το Sub UserForm_Activate. Με τη χρήση αυτού του υποσυνόλου, το Excel VBA μπορεί να ενημερώσει το Userform για να δείξει την πρόοδο της μακροεντολής.

8. Ανοίξτε τον επεξεργαστή της Visual Basic.

9. Στην Εξερεύνηση έργου, κάντε δεξί κλικ στο UserForm1 και, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή κώδικα.

10. Επιλέξτε Userform από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Ενεργοποίηση από τη δεξιά αναπτυσσόμενη λίστα.

11. Προσθέστε την ακόλουθη γραμμή κώδικα:

Private Sub UserForm_Activate()

code

End Sub

Εξήγηση: αυτό το δευτερεύον τμήμα καλεί έναν άλλο υπο-κωδικό που θα δημιουργήσουμε σε ένα λεπτό. Ταραγμένος? Μπορείτε να περάσετε από το κεφάλαιο "Λειτουργία" και "Υπο-κεφάλαιο" για να μάθετε περισσότερα σχετικά με τα υποσυστήματα Αν βιάζεστε, εκτελέστε τα παρακάτω βήματα και θα είστε εντάξει.

12. Τοποθετήστε τον υπο-ονομαστικό κώδικα σε μια ενότητα (Στο πρόγραμμα επεξεργασίας της Visual Basic, κάντε κλικ στην επιλογή Εισαγωγή, ενότητα). Αυτό είναι μόνο ένα παράδειγμα. Αυτό είναι το μέρος για να προσθέσετε τον δικό σας κώδικα όταν θέλετε να χρησιμοποιήσετε αυτήν την ένδειξη προόδου για τη δική σας μακροεντολή. Ο κώδικας φαίνεται ως εξής.

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

Επεξήγηση: Αρχικά, αρχικοποιούμε μερικές μεταβλητές. Στη συνέχεια, καθαρίζουμε το φύλλο1. Χρησιμοποιούμε έναν διπλό βρόχο για να δείξουμε τις τιμές από το 1 έως το 1000 στις πρώτες 100 σειρές του φύλλου εργασίας. Αυτό θα κρατήσει το Excel VBA απασχολημένο για λίγο και μας δίνει την ευκαιρία να δούμε την πρόοδο της μακροεντολής. Η μεταβλητή pctCompl (συντομογραφία για percentageCompleted) μετρά την πρόοδο της μακροεντολής. Τέλος, καλούμε μια άλλη υπο-ονομαστική πρόοδο και περάστε την τιμή της μεταβλητής pctCompl για να ενημερώσετε το Userform. Με αυτόν τον τρόπο μπορούμε να δούμε την πρόοδο της μακροεντολής!

13. Προσθέστε μια άλλη υπο-ονομαστική πρόοδο. Ο κώδικας φαίνεται ως εξής:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Επεξήγηση: η πρώτη γραμμή κώδικα αλλάζει τη λεζάντα του πρώτου στοιχείου ελέγχου ετικέτας. Η δεύτερη γραμμή κώδικα αλλάζει το πλάτος του δεύτερου στοιχείου ελέγχου ετικέτας. Προσθέστε το DoEvents για να ενημερώσετε το Userform.

14. Κλείστε το πρόγραμμα επεξεργασίας Visual Basic και κάντε κλικ στο κουμπί εντολών στο φύλλο:

Αποτέλεσμα:

Αποτέλεσμα δείκτη προόδου

Σημείωση: για αυτή τη μακροεντολή, χρησιμοποιήσαμε τη μεταβλητή i για να μετρήσουμε την πρόοδο. Για παράδειγμα, στη γραμμή 11, ολοκληρώνεται το 10%. Αυτό μπορεί να διαφέρει για τη μακροεντολή σας. Η τεχνική της μετάδοσης της τιμής της μεταβλητής pctCompl στην υπο-πρόοδο για την ενημέρωση του Userform παραμένει η ίδια.

Επίσης διαβάστε: