AaVBA - Όχι BB

Αυτό το σεμινάριο θα σας διδάξει για τις ενότητες τάξης στο VBA. Θα μάθετε τι είναι και πώς να τα χρησιμοποιήσετε.

Ενότητες τάξης VBA - Εισαγωγή

Όταν εισάγετε ενότητες στο Visual Basic Editor (VBE) για να εισαγάγετε τον κωδικό σας, ίσως έχετε παρατηρήσει ότι μπορείτε επίσης να εισαγάγετε αυτό που ονομάζεται «Ενότητα κλάσης».

Ενότητες τάξης έναντι ενοτήτων

Οι ενότητες της τάξης λειτουργούν με πολύ διαφορετικό τρόπο από τις συνηθισμένες ενότητες διότι διευκολύνουν τη δημιουργία ενός μοντέλου συστατικού αντικειμένου (COM) το οποίο μπορεί στη συνέχεια να χρησιμοποιηθεί στον κανονικό κώδικα VBA

Αποτελεσματικά, δημιουργείτε ένα αντικείμενο που λειτουργεί με τον ίδιο τρόπο όπως ένα ενσωματωμένο αντικείμενο του Excel, όπως «Φύλλα εργασίας». Στο αντικείμενο φύλλων εργασίας, έχετε πολλές ιδιότητες και μεθόδους που σας επιτρέπουν να λάβετε τον αριθμό των φύλλων εργασίας σε ένα βιβλίο εργασίας ή κάθε μεμονωμένο όνομα ενός φύλλου εργασίας, ή πολλές άλλες πληροφορίες

Όταν δημιουργείτε ένα νέο αντικείμενο με αυτόν τον τρόπο, δημιουργείτε ένα δομικό στοιχείο που μπορεί να χρησιμοποιηθεί οπουδήποτε στο VBA. Το αντικείμενο διαθέτει μια σειρά από ιδιότητες και μεθόδους στις οποίες μπορείτε να έχετε πρόσβαση με τον κωδικό VBA από οπουδήποτε μέσα στο βιβλίο εργασίας χωρίς να χρειάζεται να ξαναγράψετε τον κώδικα ξανά.

Εκτός από την αναφορά στο νέο σας αντικείμενο από μια τυπική μονάδα VBA, μπορείτε επίσης να το χρησιμοποιήσετε στον κώδικα πίσω από ένα UserForm που αποτελεί μέρος της προσαρμοσμένης εφαρμογής σας

Μπορείτε επίσης να το χρησιμοποιήσετε όταν έχετε τοποθετήσει τα στοιχεία ελέγχου Active X σε ένα φύλλο εργασίας, όπως ένα κουμπί εντολών ή ένα αναπτυσσόμενο μενού. Όλα αυτά τα στοιχεία ελέγχου χρησιμοποιούν VBA και το νέο σας αντικείμενο μπορεί εύκολα να ενσωματωθεί στον κωδικό συμβάντος για αυτά τα στοιχεία ελέγχου.

Μπορείτε επίσης να μετατρέψετε το αντικείμενό σας σε ένα πρόσθετο Excel. Το αντικείμενό σας θα είναι αυτόματα διαθέσιμο σε άλλους χρήστες που έχουν φορτώσει αυτό το πρόσθετο. Αυτό προσθέτει τη δική σας αρχιτεκτονική πολλαπλών επιπέδων στην εφαρμογή Excel

Το Excel είναι μια πολυεπίπεδη εφαρμογή. Υπάρχει το επίπεδο υπηρεσιών πελατών, το οποίο οδηγεί το πραγματικό παράθυρο φύλλου εργασίας που είναι εξοικειωμένο με τον χρήστη. Το μοντέλο αντικειμένου Excel είναι το επόμενο επίπεδο από κάτω. Πατήστε F2 σε μια ενότητα VBA και θα μπορείτε να δείτε τον τεράστιο αριθμό αντικειμένων και μελών αυτών των αντικειμένων που αποτελούν τον κινητήρα του Excel. Σημειώστε ότι το νέο σας αντικείμενο θα εμφανιστεί επίσης εδώ.

Τέλος, κάτω από όλα αυτά, έχετε το επίπεδο υπηρεσιών δεδομένων που περιέχει όλα τα δεδομένα που έχετε εισαγάγει στα φύλλα εργασίας και τα κελιά. Το Excel έχει πρόσβαση σε αυτό χρησιμοποιώντας το μοντέλο αντικειμένου Excel.

Η δημιουργία μιας ενότητας κλάσης σάς επιτρέπει να επεκτείνετε τη λειτουργική μονάδα αντικειμένου Excel με τα δικά σας προσαρμοσμένα αντικείμενα και μέλη

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

Πλεονεκτήματα της χρήσης ενοτήτων κλάσης

  1. Μπορείτε να αναπτύξετε ένα ισχυρό δομικό στοιχείο που μπορεί να χρησιμοποιηθεί σε οποιονδήποτε αριθμό διαφορετικών εφαρμογών Excel
  2. Μόλις δοκιμαστεί διεξοδικά, τότε μπορεί να βασιστεί ότι παράγει πάντα τα σωστά αποτελέσματα με τον ίδιο τρόπο όπως τα ενσωματωμένα αντικείμενα Excel
  3. Εάν γίνονται ενημερώσεις σε κώδικα σε άλλα σημεία της εφαρμογής, το νέο αντικείμενο θα συνεχίσει να λειτουργεί με τον ίδιο τρόπο
  4. Μπορείτε να χρησιμοποιήσετε το νέο σας αντικείμενο σε άλλες εφαρμογές Excel ως πρόσθετο
  5. Τα αντικείμενα μπορούν να επαναχρησιμοποιηθούν σε άλλες εφαρμογές και βοηθούν στον εντοπισμό σφαλμάτων

Μειονεκτήματα της χρήσης ενοτήτων κλάσης

  1. Μπορεί να είναι δύσκολο να δημιουργηθούν και να κατανοηθούν.
  2. Οι συμβάσεις ονοματοδοσίας είναι πολύ σημαντικές γιατί αυτό θα δείτε όταν χρησιμοποιείτε το αντικείμενό σας σε μια κανονική ενότητα.
  3. Εάν δεν έχετε δημιουργήσει μια ενότητα τάξης στο παρελθόν, μπορεί να είναι δύσκολο να κατανοηθούν και υπάρχει μια απότομη καμπύλη μάθησης
  4. Αδύνατο να κάνετε αλλαγές κατά την εκτέλεση-πρέπει να επαναρυθμίσετε το έργο.
  5. Εάν οι ιδιότητες και οι ιδιωτικές μεταβλητές έχουν το ίδιο όνομα, τότε μπορεί να εμφανιστούν άπειροι βρόχοι με αποτέλεσμα σφάλματα

Εισαγωγή ενότητας κλάσης

Επιλέξτε Εισαγωγή | Class Module από το μενού VBE (Visual Basic Editor). Η νέα ενότητα κλάσης θα ονομάζεται αυτόματα «Κλάση 1», αλλά πρέπει να αλλάξει αμέσως στο όνομα που πρόκειται να χρησιμοποιήσετε για το αντικείμενό σας

Αλλάζετε το όνομα στο παράθυρο Ιδιότητες όπου δείχνει το βέλος. Απλώς πληκτρολογείτε το νέο σας όνομα και αυτό θα αλλάξει στη συλλογή Class Modules

Εάν το παράθυρο Ιδιότητες δεν είναι ορατό, επιλέξτε Προβολή | Ιδιότητες στο μενού VBE ή πατήστε F4

Καλέστε τη νέα ενότητα κλάσης «MyItem» και κάντε διπλό κλικ στο όνομα στην προβολή δέντρου στην Εξερεύνηση έργου για να εμφανιστεί το παράθυρο κώδικα για αυτό.

Δημιουργία αντικειμένου αντικειμένου

Αυτό το παράδειγμα θα δημιουργήσει ένα αντικείμενο ανώτερου επιπέδου που ονομάζεται "MyItems" με ένα αντικείμενο μέλος κάτω από αυτό που ονομάζεται "MyItem" το οποίο θα περιέχει τα μεμονωμένα δεδομένα για κάθε στοιχείο. Μόλις δημιουργηθεί, θα λειτουργήσει με τον ίδιο τρόπο όπως ένα ενσωματωμένο αντικείμενο Excel. Για παράδειγμα, υπάρχει ένα αντικείμενο που ονομάζεται «Φύλλα εργασίας», το οποίο είναι μια συλλογή από κάθε φύλλο εργασίας στο βιβλίο εργασίας σας. Υπάρχει επίσης ένα αντικείμενο που ονομάζεται "Φύλλο" το οποίο αντιπροσωπεύει κάθε μεμονωμένο φύλλο εργασίας μέσα στο βιβλίο εργασίας σας και περιέχει όλες τις ιδιότητες και τις μεθόδους για κάθε φύλλο εργασίας. Αυτό το αντικείμενο σχετίζεται με το αντικείμενο συλλογής "Φύλλα εργασίας".

Μπορείτε να επαναλάβετε τη συλλογή "Φύλλα εργασίας", βλέποντας κάθε "Φύλλο" με τη σειρά. Με τον ίδιο τρόπο θα μπορείτε να επαναλαμβάνετε τη συλλογή «MyItems», προβάλλοντας τις ιδιότητες που δημιουργήσατε στο μέλος «Myitem».

Το πρώτο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε το δευτερεύον αντικείμενο για το επίπεδο μέλους, το οποίο θα περιέχει τα πραγματικά στοιχεία μέσα στη συλλογή του αντικειμένου ανώτερου επιπέδου. Αυτό είναι το ισοδύναμο των μελών (π. Αυτός ο κωδικός εισάγεται στη μονάδα κλάσης που ονομάζεται «MyItem»

Οι ενότητες κλάσης έχουν ιδιότητες και μεθόδους. Οι ιδιότητες είναι ουσιαστικά σαν μεταβλητές, καθώς διατηρούν τιμές δεδομένων όπως μεταβλητές και οι μέθοδοι είναι σαν υπορουτίνες ή συναρτήσεις.

Στο υπο -αντικείμενο θα δημιουργήσουμε δύο ιδιότητες για το αντικείμενο - Στοιχείο και Λεπτομέρεια

Αρχικά πρέπει να δηλωθούν δύο μεταβλητές συμβολοσειράς για να διατηρηθούν οι τιμές για τις ιδιότητες:

12 Ιδιωτικό mItem ως συμβολοσειράΙδιωτικό mDetail As String

Αυτά πρέπει να δηλώνονται στην ενότητα "Δηλώσεις" στο επάνω μέρος του κώδικα για την ενότητα κλάσης, έτσι ώστε να μπορούν να χρησιμοποιηθούν σε όλες τις υπορουτίνες σε όλη τη μονάδα

Πρέπει να τους δοθούν μοναδικά ονόματα για να διαφέρουν από τις ιδιότητες που πρόκειται να δημιουργήσουμε, οπότε ένα ‘m’ (για μέλος) έχει τεθεί μπροστά από κάθε όνομα.

Οι μεταβλητές δηλώνονται ως ιδιωτικές, οπότε δεν μπορούν να τις δουν κανένας που χρησιμοποιεί το αντικείμενο. Λειτουργούν μεταβλητές για χρήση εντός του κώδικα αντικειμένου και δεν είναι εκεί ως μέρος του τελικού αντικειμένου.

Το επόμενο βήμα είναι να ρυθμίσετε τον κώδικα για να δώσετε πρόσβαση στις δύο ιδιότητες. Μπορείτε να το κάνετε μέσω μιας δήλωσης ιδιοκτησίας και μιας δήλωσης λήψης ακινήτου για κάθε ιδιοκτησία. Αυτά πρέπει να είναι Δημόσια, διαφορετικά το αντικείμενο ανώτερου επιπέδου δεν θα έχει ορατές ιδιότητες

123456789101112131415 Δημόσια ακίνητη περιουσία (vdata ως συμβολοσειρά)mItem = vdataΤερματική ιδιότηταΔημόσια περιουσία Λήψη στοιχείου () ως συμβολοσειράΣτοιχείο = mItemΤερματική ιδιότηταΛεπτομέρειες ακινήτου δημόσιας περιουσίας (vdata As String)mDetail = vdataΤερματική ιδιότηταΔημόσια περιουσία Λάβετε λεπτομέρειες () ως συμβολοσειράΛεπτομέρεια = mDetailΤερματική ιδιότητα

Αυτός ο κώδικας δημιουργεί τα μέσα ανάγνωσης και εγγραφής τιμών στις δύο ιδιότητες (Στοιχείο και Λεπτομέρεια) χρησιμοποιώντας τις δύο ιδιωτικές μεταβλητές που ορίστηκαν στην ενότητα δηλώσεων της ενότητας.

Η παράμετρος «vdata» χρησιμοποιείται για τη διαβίβαση δεδομένων στην αντίστοιχη ιδιότητα.

Είναι σημαντικό κάθε ιδιότητα να έχει μια δήλωση "Ας" και "Λήψη" και το όνομα της ιδιότητας να είναι το ίδιο σε κάθε περίπτωση. Θα μπορούσατε να καταλήξετε σε δύο διαφορετικές ιδιότητες αν γράφετε λάθος - μία από την οποία μπορείτε να διαβάσετε και μία στην οποία μπορείτε να γράψετε!

Για να βοηθήσετε στη δημιουργία αυτού του κώδικα, μπορείτε να χρησιμοποιήσετε το Insert | Διαδικασία στο μενού VBE για τη δημιουργία ενός σκελετού κώδικα που θα δημιουργήσει τον αρχικό κώδικα για τις ιδιότητες "Λήψη" και "Ας" για ένα δεδομένο όνομα ιδιοκτησίας

Αυτό θα εμφανίσει ένα αναδυόμενο παράθυρο όπου πληκτρολογείτε το όνομα της ιδιότητας και επιλέγετε «Ιδιότητα» στα κουμπιά επιλογής:

Κάντε κλικ στο «OK» και ο κωδικός σκελετού θα προστεθεί στη μονάδα κλάσης:

1234567 Δημόσια ακίνητη περιουσία Get MyProperty () ως παραλλαγήΤερματική ιδιότηταΔημόσια Ιδιοκτησία Αφήστε το MyProperty (ByVal vNewValue As Variant)Τερματική ιδιότητα

Αυτό αποτρέπει τυχόν λάθη σχετικά με τα ονόματα των ιδιοτήτων. Απλώς προσθέτετε τον κωδικό σας ανάμεσα στις δηλώσεις «Δημόσια περιουσία» και «Τέλος ιδιοκτησίας».

Τώρα έχετε ένα αντικείμενο που ονομάζεται «MyItem» το οποίο θα περιέχει όλα τα δεδομένα για αυτήν την άσκηση.

Κουραστήκατε να ψάχνετε για παραδείγματα κώδικα VBA; Δοκιμάστε το AutoMacro!

Δημιουργία Συλλογής

Το επόμενο στάδιο είναι να δημιουργήσετε ένα αντικείμενο ανώτερου επιπέδου ως αντικείμενο συλλογής για να δώσετε πρόσβαση στις ιδιότητες που έχετε ρυθμίσει στο αντικείμενο "MyItem"

Και πάλι, πρέπει να ορίσετε ένα αντικείμενο εργασίας για να λειτουργεί ως αντικείμενο συλλογής με τον ίδιο τρόπο που ορίσατε τις δύο μεταβλητές συμβολοσειράς στο αντικείμενο «MyItem».

1 Ιδιωτικά mItems ως συλλογή

Και πάλι, αυτό πρέπει να έχει ένα μοναδικό όνομα, γι 'αυτό υπάρχει ένα' m '(αντικείμενο μέλους) μπροστά από το όνομα, και δηλώνεται επίσης ως' Private ', έτσι ώστε να μην εμφανίζεται κατά την εκτέλεση του νέου αντικειμένου μεταχειρισμένος

Στη συνέχεια, πρέπει να συμπληρώσετε τον κώδικα Class_Initialize. Αυτό εκτελείται όταν χρησιμοποιείτε για πρώτη φορά το αντικείμενο μέσα στον κώδικά σας και καθορίζει ποιες τιμές θα φορτωθούν στο αντικείμενο

Μπορείτε να αποκτήσετε πρόσβαση σε αυτήν την υπορουτίνα επιλέγοντας "Class" στο πρώτο αναπτυσσόμενο μενού και "Initialize" στο δεύτερο drop down του παραθύρου της ενότητας

12345678910 Private Sub Class_Initialize ()Dim objItem As MyItemΟρισμός mItems = Νέα συλλογήΓια n = 1 έως 3Ορισμός objItem = Νέο MyItemobjItem.Item = Φύλλα εργασίας ("Φύλλο1"). Εύρος ("α" & n). ΑξίαobjItem.Detail = Φύλλα εργασίας ("Φύλλο1"). Εύρος ("b" & n). ΑξίαmItems.Προσθήκη objItemΕπόμενο nΤέλος υπο

Ο κώδικας δημιουργεί ένα αντικείμενο που ονομάζεται "objItem" χρησιμοποιώντας τον ορισμό του "MyItem" τον οποίο δημιουργήσαμε ως ενότητα κλάσης νωρίτερα.

Στη συνέχεια, δημιουργεί μια νέα Συλλογή βασισμένη στο αντικείμενο «mItems» που ορίστηκε νωρίτερα

Επαναλαμβάνεται μέσω των τιμών που διατηρούνται στο Φύλλο1 του βιβλίου εργασίας και τις τοποθετεί στις ιδιότητες που δημιουργήσαμε για το αντικείμενο «MyItem». Λάβετε υπόψη ότι όταν χρησιμοποιείτε το "objitem", εμφανίζεται ένα αναπτυσσόμενο μενού που δείχνει τις δύο ιδιότητες, ακριβώς σαν να χρησιμοποιούσατε ένα ενσωματωμένο αντικείμενο Excel.

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

Τα δεδομένα εισόδου δεν χρειάζεται να ληφθούν από ένα φύλλο εργασίας. Μπορεί να είναι στατικές τιμές ή μπορεί να προέρχεται από σύνδεση σε βάση δεδομένων όπως η Microsoft Access ή ο SQL Server ή μπορεί να προέρχεται από άλλο φύλλο εργασίας.

Στη συνέχεια, πρέπει να προσθέσετε μια δημόσια λειτουργία που ονομάζεται "Στοιχείο"

123 Στοιχείο δημόσιας λειτουργίας (ευρετήριο ως ακέραιος) Ως MyItemΟρισμός στοιχείου = mItems. Στοιχείο (ευρετήριο)Λειτουργία Τέλους

Αυτό σας επιτρέπει να αναφέρεστε σε μεμονωμένα αντικείμενα μέσα στο αντικείμενο συλλογής με τον αριθμό ευρετηρίου τους. Αυτή η λειτουργία παρέχει έναν «καθρέφτη» του τι συμβαίνει στη συλλογή «mMyItems» στο παρασκήνιο.

Θα χρειαστεί επίσης να προσθέσετε μια ιδιότητα που ονομάζεται «Count», έτσι ώστε ο κωδικός σας να μπορεί να καθορίσει πόσα αντικείμενα «MyItem» υπάρχουν στη συλλογή «MyItems», εάν θέλετε να επαναληφθεί σε αυτήν.

123 Δημόσια Περιουσία Λογαριασμός () Όσο καιρόCount = mItems.CountΤερματική ιδιότητα

Σε αυτήν την περίπτωση χρειάζεστε μόνο μια ιδιότητα "Λήψη" επειδή είναι μόνο για ανάγνωση. Χρησιμοποιεί τη συλλογή mItems επειδή έχει ήδη ενσωματωμένη ιδιότητα καταμέτρησης.

Τώρα έχετε ένα αντικείμενο (MyItems) με πλήρη ιεραρχία που ορίζεται από το αντικείμενο «MyItem»

Για να λειτουργήσει ολόκληρο το πράγμα, πρέπει τώρα να συμπληρώσετε ένα φύλλο εργασίας (Φύλλο1) με δεδομένα, έτσι ώστε η ρουτίνα Αρχικοποίηση κλάσης να μπορεί να το συλλέξει στο αντικείμενο

Το υπολογιστικό φύλλο σας πρέπει να μοιάζει με αυτό:

Χρήση του νέου σας αντικειμένου

Τώρα μπορείτε να χρησιμοποιήσετε το αντικείμενο συλλογής (MyItems) σε μια τυπική μονάδα Excel VBA. Εισαγάγετε τον ακόλουθο κωδικό:

12345678 Sub test_object ()Dim MyClass As New MyItems, n Ως ακέραιοςMsgBox MyClass.CountΓια n = 1 στο MyClass.CountMsgBox MyClass. Στοιχείο (n). ΣτοιχείοMsgBox MyClass. Στοιχείο (n). ΛεπτομέρειαΕπόμενο nΤέλος υπο

Αυτός ο κώδικας δημιουργεί ένα αντικείμενο που ονομάζεται "MyClass" με βάση το αντικείμενο συλλογής που δημιουργήσατε και ονομάζεται "MyItems". Αυτή η φωτιά απενεργοποιεί τη ρουτίνα "Αρχικοποίηση" που εξάγει όλα τα δεδομένα από το φύλλο εργασίας στο αντικείμενο.

Εμφανίζει τον αριθμό των στοιχείων στη συλλογή και στη συνέχεια επαναλαμβάνεται μέσα από τη συλλογή εμφανίζοντας το κείμενο "Στοιχείο" και το κείμενο "Λεπτομέρεια". Θα παρατηρήσετε ότι όταν αναφέρεστε στο αντικείμενο «MyClass» στον κώδικά σας, θα δείτε μια λίστα με τις δύο ιδιότητες μέλους που βοηθά στην προσθήκη της σωστής ιδιότητας.

Εάν αλλάξετε την τιμή ενός κελιού στα δεδομένα εισόδου στο υπολογιστικό φύλλο, αυτό θα ενημερωθεί αυτόματα στη συλλογή όταν εκτελέσετε ξανά τον παραπάνω κώδικα, αφού όταν διαστασιοποιήσετε το αντικείμενο, η ρουτίνα προετοιμασίας εκτελείται και συλλέγει όλα τα νέα δεδομένα

Εάν χρησιμοποιείτε τη λέξη "Στατική" αντί για "Dim", η ρουτίνα αρχικοποίησης δεν εκτελείται και οι παλιές τιμές διατηρούνται, εφόσον ο κώδικας λειτουργεί συνεχώς. Εάν αλλάξουν τα δεδομένα στο υπολογιστικό φύλλο, αυτό δεν θα αντικατοπτρίζεται στο αντικείμενο

1234567 Sub Test_Static ()Στατικό Myclass ως νέο MyItems, n Ως ακέραιοΓια n = 1 Προς Myclass.CountMsgBox Myclass. Στοιχείο (n). ΣτοιχείοMsgBox Myclass. Στοιχείο (n). ΛεπτομέρειαΕπόμενο nΤέλος υπο

Περίληψη της δημιουργίας ενός αντικειμένου χρησιμοποιώντας μια ενότητα κλάσης

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

Ωστόσο, έχει τεράστια πλεονεκτήματα καθιστώντας τον κώδικά σας πιο κομψό και ευκολότερο στην ανάγνωση. Είναι επίσης ευκολότερο να το μοιραστείτε με άλλες εφαρμογές και προγραμματιστές Excel μετατρέποντάς το σε Πρόσθετο.

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

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

Επίσης, εάν τα δεδομένα αλλάξουν στο υπολογιστικό φύλλο (ή σε μια συνδεδεμένη βάση δεδομένων, εάν το έχετε χρησιμοποιήσει ως πηγή δεδομένων μέσα στην ενότητα της τάξης σας) κάθε φορά που χρησιμοποιείτε τη δήλωση "Dim", η ρουτίνα προετοιμασίας θα καλείται και τα δεδομένα θα ενημερώνονται άμεσα Το Δεν χρειάζεται να γράψετε κώδικα για να συμπληρώσετε ξανά τον πίνακά σας.

Χρήση μιας ενότητας κλάσης για τη δημιουργία ενός μεταβλητού αποθετηρίου

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

Μπορείτε να δημιουργήσετε μια ενότητα κλάσης που θα περιέχει έναν μεγάλο αριθμό μεταβλητών και επειδή είναι ένα αντικείμενο, μπορεί να χρησιμοποιηθεί οπουδήποτε μέσα στον κώδικά σας, ακόμη και σε μια φόρμα χρήστη ή σε ένα στοιχείο ελέγχου Active X που έχετε τοποθετήσει σε ένα φύλλο εργασίας.

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

Για να δημιουργήσετε ένα αποθετήριο, πρέπει να εισαγάγετε μια νέα ενότητα κλάσης. Μπορείτε να το κάνετε χρησιμοποιώντας το Insert | Class Module από το μενού VB Editor

Αλλάξτε το όνομα σε "MyVariables" χρησιμοποιώντας την ίδια μεθοδολογία που συζητήθηκε προηγουμένως σε αυτό το άρθρο.

Εισαγάγετε τον ακόλουθο κωδικό:

12345678910111213141516 Private mV As VariantΔημόσια περιουσία Λάβετε μεταβλητή1 () ως παραλλαγήΜεταβλητή1 = mVΤερματική ιδιότηταΔημόσια ακίνητα Let Variable1 (ByVal vNewValue As Variant)mV = vNewValueΤερματική ιδιότηταΔημόσια περιουσία Λάβετε μεταβλητή2 () ως παραλλαγήΜεταβλητή1 = mVΤερματική ιδιότηταΔημόσια ακίνητα Let Variable2 (ByVal vNewValue As Variant)mV = vNewValueΤερματική ιδιότητα

Αυτός ο κώδικας ρυθμίζει τις ιδιότητες "Let" και "Get" για δύο μεταβλητές ("Variable1" και "Variable2"). Οι ιδιότητες Let and Get απαιτούνται για κάθε μεταβλητή σας, έτσι ώστε να διαβάζονται / γράφονται

Μπορείτε να χρησιμοποιήσετε τα δικά σας ονόματα για τις μεταβλητές αντί για τα δείγματα σε αυτόν τον κώδικα και μπορείτε να προσθέσετε περισσότερες μεταβλητές, βεβαιωθείτε ότι κάθε νέα μεταβλητή έχει μια δήλωση "Αφήνω" και "Λήψη".

Η ιδιωτική δήλωση της μεταβλητής ‘mV’ είναι η δημιουργία μιας μεταβλητής εργασίας η οποία χρησιμοποιείται μόνο εντός της ενότητας κλάσης για τη μεταφορά τιμών.

Για να χρησιμοποιήσετε το αποθετήριο μεταβλητών, εισαγάγετε τον ακόλουθο κώδικα σε μια τυπική μονάδα:

123456 Global VarRepo As New MyVariablesSub TestVariableRepository ()MsgBox VarRepo.Variable1VarRepo.Variable1 = 10MsgBox VarRepo.Variable1Τέλος υπο

Αυτός ο κώδικας δημιουργεί μια καθολική παρουσία του αντικειμένου "MyVariables" που δημιουργήσατε. Χρειάζεται να κάνετε αυτήν τη δήλωση μόνο μία φορά από οπουδήποτε μέσα στον κωδικό σας.

Ο κώδικας εμφανίζει πρώτα την τιμή του "Variable1" για να δείξει ότι είναι κενός.

Μια τιμή 10 αποδίδεται στο «Variable1» και στη συνέχεια εμφανίζεται η νέα τιμή μέσα στο αντικείμενο για να δείξει ότι αυτή η ιδιότητα διατηρεί τώρα αυτήν την τιμή.

Επειδή η παρουσία του αντικειμένου "MyVariables" έχει οριστεί σε παγκόσμιο επίπεδο, μπορείτε να ανατρέξετε σε οποιαδήποτε από τις καθορισμένες μεταβλητές στο αντικείμενο από οπουδήποτε μέσα στον κώδικά σας.

Αυτό έχει ένα τεράστιο πλεονέκτημα στο ότι εάν θέλετε να χρησιμοποιήσετε τις μεταβλητές σας οπουδήποτε στον κώδικά σας, χρειάζεται μόνο να ορίσετε μία καθολική μεταβλητή και από εκείνη την περίπτωση, όλες οι μεταβλητές μπορούν να έχουν ελεύθερη πρόσβαση και να τροποποιηθούν σε ολόκληρο τον κώδικά σας.

Υπέροχο Προϊόν. Το AutoMacro δεν γράφει μόνο τον κωδικό σας, διδάσκει καθώς προχωράτε! » - Τόνι, Ηνωμένο Βασίλειο

Μάθε περισσότερα

Διαβάστε τις 900+ κριτικές μας

Μετατροπή του αντικειμένου σας σε πρόσθετο

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

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

Επιλέξτε τον τύπο αρχείου ως Add-In (.xlam) από τον τύπο αρχείου και κάντε κλικ στο OK. Το αρχείο θα αποθηκευτεί στο φάκελο Add-In από προεπιλογή, αλλά μπορείτε να αλλάξετε την τοποθεσία.

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

Για να συμπεριλάβετε το νέο σας Πρόσθετο στο Excel, κάντε κλικ στο Αρχείο στην κορδέλα του Excel και, στη συνέχεια, κάντε κλικ στην επιλογή Επιλογές στο κάτω μέρος του αριστερού παραθύρου

Κάντε κλικ στο «Πρόσθετα» στο αριστερό παράθυρο στο αναδυόμενο παράθυρο που εμφανίζεται. Στο κάτω μέρος του παραθύρου υπάρχει ένα κουμπί με την ένδειξη «Go»

Κάντε κλικ σε αυτό και θα εμφανιστεί ένα αναδυόμενο παράθυρο «Add-In». Κάντε κλικ στο «Περιήγηση» και, στη συνέχεια, εντοπίστε το πρόσθετο αρχείο σας. Στη συνέχεια, θα μπορείτε να ανατρέξετε στο αντικείμενό σας στον κώδικά σας.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave