Τι είναι μια τάξη στο VBA;
Μια κλάση είναι ένα σχέδιο για να δημιουργηθεί ένα αντικείμενο. Η ίδια η κλάση δεν κάνει τίποτα, αλλά χρησιμοποιώντας κλάσεις μπορείτε να δημιουργήσετε πολλά πανομοιότυπα αντικείμενα που μπορούν να εκτελέσουν λειτουργίες ή μπορούν να χρησιμοποιηθούν ως πόροι δεδομένων.
Στην πραγματική ζωή, το μοντέλο (σχεδιασμός και λειτουργίες) ενός αυτοκινήτου είναι μια κατηγορία και το ίδιο το αυτοκίνητο είναι ένα αντικείμενο αυτής της κατηγορίας. Στην τάξη, καθορίζουμε τι έχει το αυτοκίνητο και τι μπορεί να κάνει. Για παράδειγμα, ένα αυτοκίνητο έχει 4 τροχούς, 5 σχέσεις, τιμόνι κλπ. Αυτά είναι χαρακτηριστικά/ιδιότητες. Ορίζουμε επίσης τι μπορεί να κάνει ένα αυτοκίνητο, όπως το να κινείται προς τα εμπρός, προς τα πίσω, να στρίβει κ.λπ. Αυτές είναι λειτουργίες της κατηγορίας αυτοκινήτων. Ένα αντικείμενο αυτοκινήτου που δημιουργήθηκε χρησιμοποιώντας κλάση αυτοκινήτου, θα έχει όλες αυτές τις ιδιότητες. Εάν ορίσετε ένα αυτοκίνητο που έχει 5 τροχούς, ένα αυτοκίνητο που έχει δημιουργηθεί χρησιμοποιώντας αυτήν την κατηγορία θα έχει 5 τροχούς. Καταλαβαίνεις το νόημα.
Αρκετά από τη θεωρία, τώρα ας δούμε πώς μπορείτε να χρησιμοποιήσετε μια ενότητα κλάσης στο VBA.
Χρήση ενότητας κλάσης Excel VBA
Ενώ εργάζεστε στο VBA, πρέπει να έχετε χρησιμοποιήσει το Range ("A1"). Επιλέξτε. Το εύρος είναι προκαθορισμένη κατηγορία στο VBA. Η επιλογή είναι μία από τις συναρτήσεις της κατηγορίας εύρους που επιλέγουν το καθορισμένο εύρος. Ομοίως, το Debug είναι κλάση στο VBA και εκτυπώστε και επιβεβαιώστε τις μεθόδους του. Τα φύλλα εργασίας, τα τετράδια εργασίας, το εύρος κλπ. Όλα είναι μαθήματα VBA που χρησιμοποιούμε στις συνδρομές μας.
Δημιουργήστε τη δική σας τάξη
Πρώτον, πρέπει να προσθέσουμε μια ενότητα κλάσης στο VBA
Πατήστε το συνδυασμό πλήκτρων ALT+F11 για να ανοίξετε τον επεξεργαστή Excel VBA.
-
- Κάντε δεξί κλικ στο πρόγραμμα εξερεύνησης έργου. Μετακινήστε τον κέρσορα στο στοιχείο Εισαγωγή-> Ενότητα κλάσης. Κάντε κλικ σε αυτό. Το ίδιο μπορεί να γίνει και από το μενού Εισαγωγή.
-
- Η τάξη θα προστεθεί στο φάκελο "Class module". Το προεπιλεγμένο όνομα είναι όπως class1, class2 και ούτω καθεξής. Μπορείτε να αλλάξετε το όνομα της κλάσης από το παράθυρο ιδιοτήτων. Ας ονομάσουμε την τάξη μας «Καλώς ορίσατε».
- Τώρα ας δημιουργήσουμε προσθέστε μερικά χαρακτηριστικά στην τάξη μας. Δεδομένου ότι θέλω αυτά τα χαρακτηριστικά να είναι διαθέσιμα στο κοινό, έχω χρήση χειριστή προσβασιμότητας δημόσιο.
Δημόσια ονομασία ως συμβολοσειρά δημόσια var1 ως ακέραιος δημόσια var2 ως ακέραιος
- Τώρα ας προσθέσουμε μια συνάρτηση σε αυτήν την κλάση. Θέλω μια λειτουργία που λέει Γεια! στον χρήστη. Για να το κάνετε αυτό, προσθέστε ένα sub και ονομάστε το sayHiTo.
Sub sayHiTo (χρήστης ως συμβολοσειρά) όνομα = χρήστης MsgBox ("Γεια!" & Όνομα) Τέλος υπο
- Τώρα ας χρησιμοποιήσουμε την κλάση σε μια ενότητα. Εισαγάγετε μια νέα ενότητα εάν δεν έχετε καμία. Γράψτε ένα sub. Έχω ονομάσει το δευτερεύον τεστ μου.
Sub test () Dim wc As New Welcome 'Δηλωμένο και αρχικοποιημένο αντικείμενο καλωσορίσματος wc.sayHiTo ("Jack")' χρησιμοποίησε τη μέθοδο sayHiTo του αντικειμένου καλωσορίσματος. Τέλος υπο
- Εκτελέστε αυτό το δευτερεύον τεστ χρησιμοποιώντας το πλήκτρο F5. Θα σας ζητήσει "Hi! Jack" στο βιβλίο εργασίας του excel.
Πώς λειτουργεί;
Στο υπο -τεστ, έχουμε δημιουργήσει ένα αντικείμενο "wc" του καλως ΗΡΘΑΤΕ τάξη. Ένα αντικείμενο δημιουργείται στο VBA με δύο μεθόδους. τρέχουμε τον κώδικα, το Test sub δημιουργεί ένα αντικείμενο wc της κλάσης Welcome. Αυτό το αντικείμενο έχει όλες τις ιδιότητες της κλάσης Welcome. Χρησιμοποιούμε τη μέθοδο sayHiTo της κλάσης Welcome για να πούμε γεια στον χρήστη.
Δημιουργία αντικειμένου στο Excel VBA
-
- Άμεση δημιουργία
Στην Άμεση δημιουργία, δημιουργούμε ένα αντικείμενο ενώ δηλώνουμε το αντικείμενο με το "νέο" κλειδί. Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη στιγμιαία δημιουργία.
Dim wc As New Welcome
2. Καθυστερημένη δημιουργία
Σε καθυστερημένη δημιουργία, δηλώνουμε πρώτα μόνο το αντικείμενο. Δεν χρησιμοποιούμε τη λέξη -κλειδί "νέα". Για να χρησιμοποιήσουμε το αντικείμενο, πρέπει να το αρχικοποιήσουμε με τη "νέα" λέξη -κλειδί.
Sub test () Dim wc As Welcome 'Το wc.sayHiTo ("Jack")' δημιουργεί σφάλμα αφού το wc δεν έχει προετοιμαστεί ακόμα 'αρχικοποίηση αντικειμένου Set wc = New Welcome wc.sayHiTo ("Cory")' αυτό θα λειτουργήσει. Τέλος υπο
Πρόσβαση στις μεταβλητές μιας κλάσης
Στα παραπάνω παραδείγματα, έχουμε χρησιμοποιήσει δημόσιες μεταβλητές για την τάξη, αλλά είναι λάθος να εξασκηθούμε. Πρέπει να αποφύγουμε τη χρήση δημόσιων μεταβλητών σε μια τάξη. Τώρα το ερώτημα είναι πώς θα έχουμε πρόσβαση στις μεταβλητές της κλάσης. Νωρίτερα, χρησιμοποιήσαμε υπορουτίνα για πρόσβαση στο όνομα, αλλά οι κλάσεις VBA παρέχουν ιδιότητες που χρησιμοποιούνται για συστηματική ενημέρωση και ανάκτηση ιδιωτικών τιμών μεταβλητών της κλάσης. Οι ιδιότητες είναι πιο κομψές από τις δευτερεύουσες ή λειτουργικές για την ενημέρωση και την πρόσβαση σε ιδιωτικές μεταβλητές. Ας δούμε πώς.
Σύνταξη ιδιοκτησίας κλάσης
Ιδιωτικό όνομα ως συμβολοσειρά Ιδιωτικό var1 Ως ακέραιος ιδιωτικός var2 ως ακέραιος Ιδιοκτησία Ας MyName (nm As String) name = nm Τελική ιδιότητα Ιδιοκτησία Λήψη MyName () As String MyName = name End Property
Ας τα χρησιμοποιήσουμε σε μια ενότητα.
Sub test () 'δημιουργία αντικειμένου κλάσης Dim wc As New Welcome Dim wc1 As New Welcome' χρησιμοποιώντας ιδιότητες wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
Όταν εκτελέσετε αυτό το δοκιμαστικό υπο, θα λάβετε δύο ονόματα τυπωμένα για δύο αντικείμενα της κλάσης "Welcome".
Πώς διαφέρουν οι ιδιότητες από τις δευτερεύουσες και τις συναρτήσεις
Στο παραπάνω παράδειγμα, παρατηρήστε ότι έχουμε χρησιμοποιήσει την ιδιότητα MyName ως μεταβλητή. Αρχικοποιήσαμε την τιμή της μεταβλητής "Όνομα" μόνο γράφοντας wc.MyName = "assdf". Αυτή η γραμμή εντολών ονομάζεται ιδιότητα που ονομάζεταιΙδιότητα Get MyName () ως συμβολοσειρά. Δεν περάσαμε καμία αξία στην παρένθεση όπως κάναμε στην αρχή.
Ομοίως, για την εκτύπωση των τιμών της μεταβλητής "Όνομα" χρησιμοποιήσαμε την εντολήDebug.Print wc.MyName. Δεν είναι τόσο απλό όσο η κανονική προετοιμασία μεταβλητής; Η μόνη διαφορά είναι ότι μπορείτε να κάνετε πολλά στοιδιοκτησία τμήμα. Βάζετε επικύρωση δεδομένων, υπολογισμό, επικοινωνία κ.λπ. και ο χρήστης θα δει μόνο το αποτέλεσμα.
Μια άλλη διαφορά είναι ότι μπορούμε να χρησιμοποιήσουμε το ίδιο όνομα της ιδιότητας στο αφήνω και παίρνωμέρος. Αυτό το καθιστά ευκολότερο και λιγότερο μπερδεμένο.
Λοιπόν, ναι, αυτό ήταν ένα απλό παράδειγμα μιας ενότητας τάξης στο Excel VBA. Αυτή είναι μόνο η κορυφή του παγόβουνου, υπάρχει πολύς χυμός σε αυτό το θέμα που θα εξερευνήσουμε σε επόμενα άρθρα. Θα εξερευνήσουμε κάθε ένα από αυτά με τον ευκολότερο δυνατό τρόπο. Ελπίζω να ήμουν αρκετά επεξηγηματικός για να σας κάνω να το καταλάβετε. Εάν έχετε αμφιβολίες σχετικά με αυτό το θέμα ή οποιοδήποτε άλλο θέμα Excel VBA, αναφέρετέ το στην παρακάτω ενότητα σχολίων.
Εισαγάγετε μια ενότητα από ένα αρχείο χρησιμοποιώντας VBA στο Microsoft Excel | Μάθετε πώς μπορείτε να εισαγάγετε ολόκληρη τη μονάδα από άλλο αρχείο χρησιμοποιώντας VBA.
Δημιουργήστε μια νέα ενότητα χρησιμοποιώντας το VBA στο Microsoft Excel | Μπορείτε να χρησιμοποιήσετε μια ενότητα για να δημιουργήσετε ένα άλλο μοντέλο στο VBA. Αυτό μπορεί να σας βοηθήσει να ελαχιστοποιήσετε τις πρόσθετες γενικές εργασίες.
Προσθέστε μια διαδικασία σε μια ενότητα χρησιμοποιώντας το VBA στο Microsoft Excel | Για να προσθέσετε διαδικασίες σε μονάδες, χρησιμοποιήστε αυτόματα αυτόν τον κωδικό VBA.
Δημοφιλή άρθρα:
50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.
Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.
COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.
Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.