Τι είναι η μέθοδος CreateObject στο VBA και πώς να χρησιμοποιήσετε τη μέθοδο CreateObject στο Excel;

Πίνακας περιεχομένων:

Anonim

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

Αλλά γιατί χρησιμοποιούμε τη μέθοδο ή τη λειτουργία CreateObject εάν μπορούμε να δημιουργήσουμε απευθείας ένα αντικείμενο χρησιμοποιώντας τη νέα λέξη -κλειδί;

Λοιπόν, αυτή είναι μια έγκυρη ερώτηση και έχουμε μια κατάλληλη απάντηση.

Η δημιουργία ενός αντικειμένου χρησιμοποιώντας το CreateObject ονομάζεται Late BindingΤο Σε καθυστερημένη δέσμευση, η δημιουργία αντικειμένων συμβαίνει στον χρόνο εκτέλεσης. Δεν χρειάζεται καμία αναφορά για να προστεθεί. Αυτό καθιστά τον κώδικα VBA φορητό.

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

Σε αυτό το άρθρο θα μάθουμε για τη μέθοδο CreateObject χρησιμοποιώντας μερικά παραδείγματα.

Σύνταξη της συνάρτησης CreateObject:

Ορίστε όνομα_ αντικειμένου = CreateObject (όνομα κλάσης ως συμβολοσειρά, [όνομα διακομιστή])

όνομα κλάσης ως συμβολοσειρά: Είναι μια απαιτούμενη μεταβλητή. Είναι μια συμβολοσειρά που αναφέρεται στο όνομα της εφαρμογής και στον τύπο αντικειμένου. Το όνομα της εφαρμογής και η κλάση του αντικειμένου που πρόκειται να δημιουργηθεί πρέπει να δηλώνονται στο AppName.ObjecType. Για παράδειγμα, εάν θέλω ένα αντικείμενο της εφαρμογής Word τότε θα έγραφα "Word.Application". Θα το δούμε αναλυτικά σε παραδείγματα αργότερα.

[όνομα διακομιστή]: Είναι μια προαιρετική μεταβλητή. Είναι μια συμβολοσειρά του ονόματος του διακομιστή δικτύου όπου θα δημιουργηθεί το αντικείμενο. Εάν το όνομα διακομιστή είναι μια κενή συμβολοσειρά (""), χρησιμοποιείται το τοπικό μηχάνημα. Δεν θα το χρησιμοποιήσουμε σε αυτό το κεφάλαιο.

Τώρα, που γνωρίζουμε τα βασικά της συνάρτησης CreateObject, ας τα χρησιμοποιήσουμε σε μερικά παραδείγματα:

Παράδειγμα 1: Ανοίξτε την εφαρμογή Microsoft Word χρησιμοποιώντας το Excel VBA

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

Και ο κωδικός μας θα μοιάζει με αυτόν.

Sub OpenWordApp () Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub 

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

Για να αποφύγετε αυτό το σφάλμα, χρησιμοποιήστε τον παρακάτω κώδικα.

Sub OpenWordApp () Dim wordApp As Object Set wordApp = CreateObject ("Word.Application") Dim wordDoc As Object wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub 

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

Ας δούμε ένα άλλο παράδειγμα:

Παράδειγμα 2: Δημιουργία αντικειμένου βιβλίου εργασίας χρησιμοποιώντας τη συνάρτηση CreateObject

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

Sub addSheet () «Δηλώστε μια μεταβλητή αντικειμένου για να κρατήσει το αντικείμενο» αναφορά. Το Dim as Object προκαλεί καθυστερημένη δέσμευση. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Κάντε το Excel ορατό μέσω του αντικειμένου Application. ExcelSheet.Application.Visible = True 'Τοποθετήστε κάποιο κείμενο στο πρώτο κελί του φύλλου. ExcelSheet.Application.Cells (1, 1) .Value = "Αυτή είναι η στήλη Α, σειρά 1" 'Αποθηκεύστε το φύλλο στον κατάλογο C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Κλείστε το Excel με τη μέθοδο Κλείσιμο στο αντικείμενο Εφαρμογή. ExcelSheet.Application.Quit 'Απελευθερώστε τη μεταβλητή αντικειμένου. Ορισμός ExcelSheet = Τίποτα Τέλος υπο 

Λοιπόν, ναι, έτσι χρησιμοποιείτε τη μέθοδο CreateObject στο VBA. Ας συζητήσουμε τα οφέλη και τις αδυναμίες του.

Πλεονεκτήματα του CreateObject για δημιουργία αντικειμένου

Το κύριο πλεονέκτημα του CreateObject είναι ότι καθιστά τον κώδικα σας φορητό (όταν η δημιουργία αντικειμένου είναι το ζητούμενο). Μπορείτε να μοιραστείτε τον κώδικα σε οποιονδήποτε χωρίς να ανησυχείτε εάν έχει προσθέσει την αναφορά στο πρόγραμμα αντικειμένου χρησιμοποιώντας ή όχι.

Αδυναμία του CreateObject

Τα μειονεκτήματα της μεθόδου CreateObject είναι:

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

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

Μπορούμε να ξεπεράσουμε τις παραπάνω ελλείψεις. Έχω ένα κόλπο.

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

Λοιπόν, ναι, έτσι μπορείτε να χρησιμοποιήσετε τη λειτουργία CreateObject για να δημιουργήσετε αντικείμενα στο VBA. Ελπίζω να μπόρεσα να εξηγήσω τα πάντα. Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με αυτό το άρθρο ή άλλες ερωτήσεις που σχετίζονται με το VBA, ρωτήστε με στην παρακάτω ενότητα σχολίων.

Ξεκινώντας με το Excel VBA UserForms| Θα εξηγήσω πώς να δημιουργήσετε μια φόρμα στο excel, πώς να χρησιμοποιήσετε την εργαλειοθήκη VBA, πώς να χειριστείτε τις εισόδους των χρηστών και τέλος πώς να αποθηκεύσετε τις εισόδους των χρηστών. Θα εξετάσουμε αυτά τα θέματα χρησιμοποιώντας ένα παράδειγμα και βήμα προς βήμα οδηγό.

Μεταβλητές VBA στο Excel| Το VBA σημαίνει Visual Basic for Applications. Είναι μια γλώσσα προγραμματισμού από τη Microsoft. Χρησιμοποιείται με εφαρμογές του Microsoft Office, όπως MSExcel, MS-Word και MS-Access, ενώ οι μεταβλητές VBA είναι συγκεκριμένες λέξεις-κλειδιά.

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

Επιχειρήματα ByRef και ByVal | Όταν ένα όρισμα μεταβιβάζεται ως όρισμα ByRef σε διαφορετικό υποσύστημα ή συνάρτηση, αποστέλλεται η αναφορά της πραγματικής μεταβλητής. Τυχόν αλλαγές που γίνονται στο αντίγραφο της μεταβλητής, θα αντικατοπτρίζονται στο αρχικό όρισμα.

Διαγράψτε φύλλα χωρίς προτροπές επιβεβαίωσης χρησιμοποιώντας VBA στο Microsoft Excel | Δεδομένου ότι διαγράφετε φύλλα χρησιμοποιώντας VBA, γνωρίζετε τι κάνετε. Θα θέλατε να πείτε στο Excel να μην εμφανίζει αυτήν την προειδοποίηση και να διαγράψει το καταραμένο φύλλο.

Προσθήκη και αποθήκευση νέου βιβλίου εργασίας χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Σε αυτόν τον κώδικα, δημιουργήσαμε πρώτα μια αναφορά σε ένα αντικείμενο βιβλίου εργασίας. Και στη συνέχεια το αρχικοποιήσαμε με ένα νέο αντικείμενο βιβλίου εργασίας. Το πλεονέκτημα αυτής της προσέγγισης είναι ότι μπορείτε να κάνετε εύκολα λειτουργίες σε αυτό το νέο βιβλίο εργασίας. Όπως αποθήκευση, κλείσιμο, διαγραφή κλπ

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

Απενεργοποιήστε τα μηνύματα προειδοποίησης χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Αυτός ο κώδικας όχι μόνο απενεργοποιεί τις ειδοποιήσεις VBA αλλά επίσης αυξάνει την αποδοτικότητα χρόνου του κώδικα. Ας δούμε πώς.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένες τιμές. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.