Κάθε παράθυρο διαλόγου Excel που δημιουργείτε στο VBA αποθηκεύεται στο δικό του αντικείμενο UserForm — ένα πλαίσιο διαλόγου ανά UserForm. Μπορείτε να δημιουργήσετε και να αποκτήσετε πρόσβαση σε αυτές τις φόρμες χρήστη στο πρόγραμμα επεξεργασίας της Visual Basic.
Εισαγωγή νέας φόρμας χρήστη
Εισαγάγετε ένα αντικείμενο UserForm ακολουθώντας αυτά τα βήματα:
Ενεργοποιήστε το VBE πατώντας Alt+F11.
Επιλέξτε το βιβλίο εργασίας που θα περιέχει το UserForm στο παράθυρο Project.
Επιλέξτε Εισαγωγή → Φόρμα χρήστη.
Το VBE εισάγει ένα νέο αντικείμενο UserForm, το οποίο περιέχει ένα κενό πλαίσιο διαλόγου.
Εδώ είναι μια φόρμα χρήστη — ένα κενό πλαίσιο διαλόγου. Η δουλειά σας, εάν επιλέξετε να το αποδεχτείτε, είναι να προσθέσετε ορισμένα στοιχεία ελέγχου σε αυτήν τη φόρμα χρήστη.
Ένα νέο αντικείμενο UserForm.
Προσθήκη στοιχείων ελέγχου σε μια φόρμα χρήστη
Όταν ενεργοποιείτε ένα UserForm, το VBE εμφανίζει την Εργαλειοθήκη σε ένα αιωρούμενο παράθυρο. Χρησιμοποιείτε τα εργαλεία στην Εργαλειοθήκη για να προσθέσετε στοιχεία ελέγχου στο UserForm σας. Εάν, για κάποιο λόγο, η Εργαλειοθήκη δεν εμφανίζεται όταν ενεργοποιείτε τη Φόρμα Χρήστη, επιλέξτε Προβολή → Εργαλειοθήκη.
Για να προσθέσετε ένα στοιχείο ελέγχου, απλώς κάντε κλικ στο στοιχείο ελέγχου που θέλετε στην Εργαλειοθήκη και σύρετέ το στο πλαίσιο διαλόγου για να δημιουργήσετε το στοιχείο ελέγχου. Αφού προσθέσετε ένα στοιχείο ελέγχου, μπορείτε να μετακινήσετε και να αλλάξετε το μέγεθός του χρησιμοποιώντας τυπικές τεχνικές.
Ακολουθεί μια λίστα με τα διάφορα εργαλεία, καθώς και τις δυνατότητές τους.
Ελεγχος |
Τι κάνει |
Επιγραφή |
Εμφανίζει κείμενο |
Πλαίσιο κειμένου |
Επιτρέπει στον χρήστη να εισάγει κείμενο |
ComboBox |
Εμφανίζει μια αναπτυσσόμενη λίστα |
Πλαίσιο λίστας |
Εμφανίζει μια λίστα στοιχείων |
Πλαίσιο ελέγχου |
Παρέχει επιλογές όπως ενεργοποίηση/απενεργοποίηση ή ναι/όχι |
Κουμπί επιλογής |
Επιτρέπει στο χρήστη να επιλέξει μία από τις πολλές επιλογές. χρησιμοποιείται σε
ομάδες των δύο ή περισσότερων |
ToggleButton |
Επιτρέπει στον χρήστη να ενεργοποιήσει ή να απενεργοποιήσει ένα κουμπί |
Πλαίσιο |
Περιέχει άλλα στοιχεία ελέγχου |
CommandButton |
Ένα κουμπί με δυνατότητα κλικ |
TabStrip |
Εμφανίζει καρτέλες |
Πολυσέλιδο |
Ένα δοχείο με καρτέλες για άλλα αντικείμενα |
Γραμμή κύλισης |
Επιτρέπει στο χρήστη να σύρει μια γραμμή για να δημιουργήσει μια ρύθμιση |
SpinButton |
Επιτρέπει στον χρήστη να κάνει κλικ σε ένα κουμπί για να αλλάξει μια τιμή |
Εικόνα |
Κρατάει μια εικόνα |
RefEdit |
Επιτρέπει στον χρήστη να επιλέξει ένα εύρος |
Αλλαγή ιδιοτήτων για ένα στοιχείο ελέγχου UserForm
Κάθε στοιχείο ελέγχου που προσθέτετε σε μια φόρμα χρήστη έχει ιδιότητες που καθορίζουν την εμφάνιση ή τη συμπεριφορά του στοιχείου ελέγχου. Επιπλέον, το ίδιο το UserForm έχει το δικό του σύνολο ιδιοτήτων. Μπορείτε να αλλάξετε αυτές τις ιδιότητες με το κατάλληλο παράθυρο Ιδιότητες. Αυτό εμφανίζει το παράθυρο Ιδιότητες όταν επιλέγεται ένα στοιχείο ελέγχου CommandButton.
Χρησιμοποιήστε τα παράθυρα Ιδιότητες για να αλλάξετε τις ιδιότητες των στοιχείων ελέγχου UserForm.
Το παράθυρο Ιδιότητες εμφανίζεται όταν πατάτε το F4 και οι ιδιότητες που εμφανίζονται σε αυτό το παράθυρο εξαρτώνται από το τι έχει επιλεγεί. Εάν επιλέξετε διαφορετικό στοιχείο ελέγχου, οι ιδιότητες αλλάζουν σε αυτές που είναι κατάλληλες για αυτό το στοιχείο ελέγχου. Για να αποκρύψετε το παράθυρο Ιδιότητες και να το απομακρύνετε, κάντε κλικ στο κουμπί Κλείσιμο στη γραμμή τίτλου του. Πατώντας το F4 το επαναφέρει πάντα όταν το χρειάζεστε.
Οι ιδιότητες για τους ελέγχους περιλαμβάνουν τα ακόλουθα:
-
Ονομα
-
Πλάτος
-
Υψος
-
αξία
-
Λεζάντα
Κάθε στοιχείο ελέγχου έχει το δικό του σύνολο ιδιοτήτων (αν και πολλά στοιχεία ελέγχου έχουν κάποιες κοινές ιδιότητες). Για να αλλάξετε μια ιδιότητα χρησιμοποιώντας το παράθυρο Ιδιότητες, ακολουθήστε τα εξής βήματα:
Βεβαιωθείτε ότι έχει επιλεγεί το σωστό στοιχείο ελέγχου στο UserForm.
Βεβαιωθείτε ότι το παράθυρο Ιδιότητες είναι ορατό.
Στο παράθυρο Ιδιότητες, κάντε κλικ στην ιδιότητα που θέλετε να αλλάξετε.
Κάντε την αλλαγή στο δεξιό τμήμα του παραθύρου Ιδιότητες.
Εάν επιλέξετε το ίδιο το UserForm (όχι ένα στοιχείο ελέγχου στο UserForm), μπορείτε να χρησιμοποιήσετε το παράθυρο Ιδιότητες για να προσαρμόσετε τις ιδιότητες UserForm.
Προβολή του παραθύρου UserForm Code
Κάθε αντικείμενο UserForm έχει μια λειτουργική μονάδα κώδικα που περιέχει τον κώδικα VBA (τις διαδικασίες χειρισμού συμβάντων) που εκτελείται όταν ο χρήστης εργάζεται με το πλαίσιο διαλόγου. Για να προβάλετε τη μονάδα κώδικα, πατήστε F7. Το παράθυρο Κώδικας είναι κενό μέχρι να προσθέσετε κάποιες διαδικασίες. Πατήστε Shift+F7 για να επιστρέψετε στο παράθυρο διαλόγου.
Ακολουθεί ένας άλλος τρόπος εναλλαγής μεταξύ του παραθύρου Κώδικας και της εμφάνισης UserForm: Χρησιμοποιήστε τα κουμπιά Προβολή κώδικα και Προβολή αντικειμένου στη γραμμή τίτλου του παραθύρου του έργου. Ή κάντε δεξί κλικ στο UserForm και επιλέξτε Προβολή κώδικα. Εάν προβάλλετε κώδικα, κάντε διπλό κλικ στο όνομα UserForm στο παράθυρο Project για να επιστρέψετε στο UserForm.
Εμφάνιση φόρμας χρήστη
Εμφανίζετε ένα UserForm χρησιμοποιώντας τη μέθοδο Show UserForm σε μια διαδικασία VBA.
Η μακροεντολή που εμφανίζει το πλαίσιο διαλόγου πρέπει να βρίσκεται σε μια λειτουργική μονάδα VBA — όχι στο παράθυρο Κώδικας για το UserForm.
Η ακόλουθη διαδικασία εμφανίζει το πλαίσιο διαλόγου με το όνομα UserForm1:
Sub ShowDialogBox()
UserForm1.Show
Άλλες δηλώσεις μπορούν να πάνε εδώ
End Sub
Όταν το Excel εμφανίζει το παράθυρο διαλόγου, η μακροεντολή ShowDialogBox σταματά μέχρι ο χρήστης να κλείσει το παράθυρο διαλόγου. Στη συνέχεια, η VBA εκτελεί τυχόν υπολειπόμενες δηλώσεις στη διαδικασία. Τις περισσότερες φορές, δεν θα έχετε άλλο κωδικό στη διαδικασία. Όπως θα δείτε αργότερα, βάζετε τις διαδικασίες χειρισμού συμβάντων στο παράθυρο Κώδικας για το UserForm. Αυτές οι διαδικασίες ξεκινούν όταν ο χρήστης εργάζεται με τα στοιχεία ελέγχου στο UserForm.
Χρήση πληροφοριών από μια φόρμα χρήστη
Το VBE παρέχει ένα όνομα για κάθε στοιχείο ελέγχου που προσθέτετε σε ένα UserForm. Το όνομα του στοιχείου ελέγχου αντιστοιχεί στην ιδιότητά του Όνομα. Χρησιμοποιήστε αυτό το όνομα για να αναφερθείτε σε ένα συγκεκριμένο στοιχείο ελέγχου στον κώδικά σας. Για παράδειγμα, εάν προσθέσετε ένα στοιχείο ελέγχου πλαισίου ελέγχου σε μια φόρμα χρήστη που ονομάζεται UserForm1, το στοιχείο ελέγχου Πλαισίου ελέγχου ονομάζεται από προεπιλογή CheckBox1. Μπορείτε να χρησιμοποιήσετε το πλαίσιο Ιδιότητες για να εμφανίσετε αυτό το στοιχείο ελέγχου με ένα σημάδι επιλογής. Ή μπορείτε να γράψετε κώδικα για να το κάνετε:
UserForm1.CheckBox1.Value = True
Τις περισσότερες φορές, γράφετε τον κώδικα για ένα UserForm στη μονάδα κώδικα του UserForm. Εάν συμβαίνει αυτό, μπορείτε να παραλείψετε τον προσδιορισμό αντικειμένου UserForm και να γράψετε τη δήλωση ως εξής:
CheckBox1.Value = True
Ο κωδικός VBA μπορεί επίσης να ελέγξει διάφορες ιδιότητες των στοιχείων ελέγχου και να προβεί στις κατάλληλες ενέργειες. Η ακόλουθη πρόταση εκτελεί μια μακροεντολή με το όνομα PrintReport εάν είναι επιλεγμένο το πλαίσιο ελέγχου (με όνομα CheckBox1):
Εάν CheckBox1.Value = True, τότε καλέστε το PrintReport
Συνήθως είναι καλή ιδέα να αλλάξετε το προεπιλεγμένο όνομα που έχει δώσει το VBE στα χειριστήρια σας σε κάτι πιο ουσιαστικό.