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


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

3. Προσθέστε τον έλεγχο πολλαπλών σελίδων, τις ετικέτες, τα πλαίσια κειμένου (πρώτα στην κορυφή, το δεύτερο κάτω από το πρώτο), το πλαίσιο, τα κουμπιά επιλογών (πρώτα στα αριστερά, το δεύτερο στα δεξιά), το πλαίσιο λίστας, το κουμπί ελέγχου εικόνας και το κουμπί εντολής. Αφού ολοκληρωθεί αυτό το αποτέλεσμα, το αποτέλεσμα πρέπει να είναι συνεπές με την άδεια έκδοση του Userform που παρουσιάστηκε νωρίτερα. Για παράδειγμα, δημιουργήστε ένα στοιχείο ελέγχου πολλαπλών σελίδων κάνοντας κλικ στην επιλογή Πολλαπλή σελίδα από την Εργαλειοθήκη. Στη συνέχεια, μπορείτε να σύρετε ένα στοιχείο ελέγχου πολλών σελίδων στο Userform. Όταν φτάνετε στο πλαίσιο Φύλο, θυμηθείτε να σχεδιάσετε αυτό το πλαίσιο πρώτα πριν τοποθετήσετε τα δύο κουμπιά επιλογής σε αυτό.
4. Μπορείτε να αλλάξετε τα ονόματα και τις λεζάντες των στοιχείων ελέγχου. Τα ονόματα χρησιμοποιούνται στον κώδικα Excel VBA. Οι λεζάντες είναι αυτές που εμφανίζονται στην οθόνη σας. Είναι καλή πρακτική η αλλαγή των ονομάτων των στοιχείων ελέγχου, αλλά δεν είναι απαραίτητο εδώ επειδή έχουμε μόνο λίγα στοιχεία ελέγχου σε αυτό το παράδειγμα. Για να αλλάξετε τη λεζάντα των καρτελών Userform, Multipage, ετικετών, πλαισίου, κουμπιών επιλογών και κουμπιού εντολών, κάντε κλικ στην επιλογή Προβολή, Παράθυρο ιδιοτήτων και κάντε κλικ σε κάθε έλεγχο.
5. Για να εμφανίσετε το Userform, τοποθετήστε ένα κουμπί εντολής στο φύλλο εργασίας σας και προσθέστε την ακόλουθη γραμμή κώδικα:
UserForm1.Show
End Sub
Τώρα θα δημιουργήσουμε το Sub UserForm_Initialize. Όταν χρησιμοποιείτε τη μέθοδο εμφάνισης για τη φόρμα χρήστη, αυτό το υποσύνολο θα εκτελείται αυτόματα.
6. Ανοίξτε τον επεξεργαστή της Visual Basic.
7. Στην Εξερεύνηση έργου, κάντε δεξί κλικ στο UserForm1 και, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή κωδικού.
8. Επιλέξτε Userform από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Αρχικοποίηση από τη δεξιά αναπτυσσόμενη λίστα.
9. Προσθέστε τις ακόλουθες γραμμές κώδικα:
With ListBox1
.AddItem "Mountains"
.AddItem "Sunset"
.AddItem "Beach"
.AddItem "Winter"
End With
End Sub
Επεξήγηση: θα συμπληρωθεί το πλαίσιο λίστας στη σελίδα 2.
Δημιουργήσαμε τώρα το πρώτο μέρος του Userform. Παρόλο που φαίνεται ήδη καθαρό, δεν θα συμβεί τίποτα όταν επιλέγουμε ένα στοιχείο από το πλαίσιο λίστας ή όταν κάνουμε κλικ στο κουμπί OK.
10. Κατεβάστε τις εικόνες (δεξιά πλευρά αυτής της σελίδας) και προσθέστε τις στο "C: test"
11. Στην Εξερεύνηση έργου, κάντε διπλό κλικ στο UserForm1.
12. Κάντε διπλό κλικ στο πλαίσιο λίστας.
13. Προσθέστε τις ακόλουθες γραμμές κώδικα:
If ListBox1.ListIndex = 0 Then
Image1.Picture = LoadPicture("C:testMountains.jpg")
End If
If ListBox1.ListIndex = 1 Then
Image1.Picture = LoadPicture("C:testSunset.jpg")
End If
If ListBox1.ListIndex = 2 Then
Image1.Picture = LoadPicture("C:testBeach.jpg")
End If
If ListBox1.ListIndex = 3 Then
Image1.Picture = LoadPicture("C:testWinter.jpg")
End If
End Sub
Επεξήγηση: Αυτές οι γραμμές κώδικα φορτώνουν μια εικόνα ανάλογα με το επιλεγμένο στοιχείο στο πλαίσιο λίστας.
14. Κάντε διπλό κλικ στο κουμπί OK.
15. Προσθέστε τις ακόλουθες γραμμές κώδικα:
Dim emptyRow As Long
"Make Sheet1 active
Sheet1.Activate
"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
"Transfer information
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
If OptionButton1.Value = True Then
Cells(emptyRow, 3).Value = "Male"
Else
Cells(emptyRow, 3).Value = "Female"
End If
Cells(emptyRow, 4).Value = ListBox1.Value
"Close Userform
Unload Me
End Sub
Επεξήγηση: Αρχικά, ενεργοποιούμε το φύλλο1. Στη συνέχεια, καθορίζουμε το emptyRow. Η μεταβλητή emptyRow είναι η πρώτη κενή γραμμή και αυξάνεται κάθε φορά που προστίθεται μια εγγραφή. Στη συνέχεια, μεταφέρουμε τις πληροφορίες από το Userform στις συγκεκριμένες στήλες του emptyRow. Τέλος, κλείνουμε το Userform.
16. Κλείστε τον Επεξεργαστή Visual Basic, εισαγάγετε τις ετικέτες που εμφανίζονται παρακάτω στη σειρά 1 και δοκιμάστε το Userform.
Αποτέλεσμα:
