/ / / Χρήση VBA του Excel

Έντυπο χρήστη VBA Excel

Προσθέστε τους ελέγχους | Εμφάνιση του μορφότυπου χρήστη | Ορίστε τις μακροεντολές | Δοκιμάστε το Userform

Αυτό το κεφάλαιο σας διδάσκει πώς να δημιουργήσετε ένα Έντυπο χρήστη VBA Excel. Το Userform που πρόκειται να δημιουργήσουμε φαίνεται ως εξής:

Έντυπο χρήστη VBA Excel

Προσθέστε τους ελέγχους

Για να προσθέσετε τα στοιχεία ελέγχου στο Userform, εκτελέστε τα παρακάτω βήματα.

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

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

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

3. Προσθέστε τα στοιχεία ελέγχου που αναφέρονται στον παρακάτω πίνακα. Μόλις ολοκληρωθεί αυτό το αποτέλεσμα, το αποτέλεσμα πρέπει να είναι συνεπές με την εικόνα του Userform που παρουσιάστηκε νωρίτερα. Για παράδειγμα, δημιουργήστε ένα πλαίσιο ελέγχου κειμένου κάνοντας κλικ στο πλαίσιο κειμένου από την Εργαλειοθήκη. Στη συνέχεια, μπορείτε να σύρετε ένα πλαίσιο κειμένου στο Userform. Όταν φτάνετε στο πλαίσιο αυτοκινήτου, θυμηθείτε να σχεδιάσετε αυτό το πλαίσιο πρώτα πριν τοποθετήσετε τα δύο κουμπιά επιλογής μέσα σε αυτό.

4. Αλλάξτε τα ονόματα και τις λεζάντες των στοιχείων ελέγχου σύμφωνα με τον παρακάτω πίνακα. Τα ονόματα χρησιμοποιούνται στον κώδικα Excel VBA. Οι λεζάντες είναι αυτές που εμφανίζονται στην οθόνη σας. Είναι καλή πρακτική η αλλαγή των ονομάτων των στοιχείων ελέγχου. Αυτό θα κάνει τον κώδικα σας πιο εύκολο να διαβαστεί. Για να αλλάξετε τα ονόματα και τις λεζάντες των στοιχείων ελέγχου, κάντε κλικ στην επιλογή Προβολή, Παράθυρο ιδιοτήτων και κάντε κλικ σε κάθε στοιχείο ελέγχου.

Ελεγχος Ονομα Λεζάντα
Χρήστη DinnerPlannerUserForm Δείπνο Σχεδιασμός
Πλαίσιο κειμένου ΌνομαTextBox
Πλαίσιο κειμένου PhoneTextBox
Πλαίσιο λίστας CityListBox
Σύνθετο κιβώτιο DinnerComboBox
Πλαίσιο ελέγχου DateCheckBox1 13 Ιουνίου
Πλαίσιο ελέγχου DateCheckBox2 20 Ιουνίου
Πλαίσιο ελέγχου DateCheckBox3 27 Ιουνίου
Πλαίσιο CarFrame Αυτοκίνητο
Κουμπί επιλογής CarOptionButton1 Ναί
Κουμπί επιλογής CarOptionButton2 Οχι
Πλαίσιο κειμένου MoneyTextBox
Πλήκτρο περιστροφής MoneySpinButton
Κουμπί εντολών OKButton Εντάξει
Κουμπί εντολών ClearButton Σαφή
Κουμπί εντολών CancelButton Ματαίωση
7 ετικέτες Δεν χρειάζεται να αλλάξουμε Όνομα :, Τηλέφωνο :, κλπ.

Σημείωση: ένα σύνθετο πλαίσιο είναι μια αναπτυσσόμενη λίστα από όπου ο χρήστης μπορεί να επιλέξει ένα στοιχείο ή να συμπληρώσει τη δική του επιλογή. Μόνο ένα από τα κουμπιά επιλογής μπορεί να επιλεγεί.

Εμφάνιση του μορφότυπου χρήστη

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

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Τώρα θα δημιουργήσουμε το Sub UserForm_Initialize. Όταν χρησιμοποιείτε τη μέθοδο εμφάνισης για τη φόρμα χρήστη, αυτό το υποσύνολο θα εκτελείται αυτόματα.

1. Ανοίξτε τον Επεξεργαστή Visual Basic.

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

3. Επιλέξτε Userform από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Αρχικοποίηση από τη δεξιά αναπτυσσόμενη λίστα.

4. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

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

Ορίστε τις μακροεντολές

Δημιουργήσαμε τώρα το πρώτο μέρος του Userform. Παρόλο που φαίνεται ήδη καθαρό, τίποτα δεν θα συμβεί ακόμα όταν κάνουμε κλικ στα κουμπιά εντολών στο Userform.

1. Ανοίξτε τον Επεξεργαστή Visual Basic.

2. Στην Εξερεύνηση έργου, κάντε διπλό κλικ στο DinnerPlannerUserForm.

3. Κάντε διπλό κλικ στο κουμπί Spin Money.

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

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Επεξήγηση: Αυτή η γραμμή κώδικα ενημερώνει το πλαίσιο κειμένου όταν χρησιμοποιείτε το κουμπί περιστροφής.

5. Κάντε διπλό κλικ στο κουμπί OK.

6. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub OKButton_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub

Επεξήγηση: Αρχικά, ενεργοποιούμε το φύλλο1. Στη συνέχεια, καθορίζουμε το emptyRow. Η μεταβλητή emptyRow είναι η πρώτη κενή γραμμή και αυξάνεται κάθε φορά που προστίθεται μια εγγραφή. Τέλος, μεταφέρουμε τις πληροφορίες από το Userform στις συγκεκριμένες στήλες του emptyRow.

7. Κάντε διπλό κλικ στο κουμπί Εκκαθάριση.

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

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Επεξήγηση: αυτή η γραμμή κώδικα καλεί το Sub UserForm_Initialize όταν κάνετε κλικ στο κουμπί Clear.

9. Κάντε διπλό κλικ στο κουμπί Ακύρωση.

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

Private Sub CancelButton_Click()

Unload Me

End Sub

Επεξήγηση: αυτή η γραμμή κώδικα κλείνει το Userform όταν κάνετε κλικ στο κουμπί Ακύρωση.

Δοκιμάστε το Userform

Έξοδος από τον Επεξεργαστή Visual Basic, εισαγάγετε τις ετικέτες που εμφανίζονται παρακάτω στη σειρά 1 και δοκιμάστε το Userform.

Αποτέλεσμα:

Δοκιμάστε το Userform

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