CreateObject στο VBA - Πώς να χρησιμοποιήσετε τη συνάρτηση CreateObject στο VBA;

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

Λειτουργία CreateObject στο VBA

Τα αντικείμενα είναι πολύ σημαντικές έννοιες στην κωδικοποίηση VBA και η κατανόηση ότι το μοντέλο εργασίας ενός αντικειμένου είναι αρκετά περίπλοκο. Όταν αναφέρουμε τα αντικείμενα στην κωδικοποίηση VBA, το κάνουμε με δύο τρόπους, δηλαδή, "Early Binding" και "Late Binding". Το "Early Binding" είναι η διαδικασία καθορισμού της αναφοράς αντικειμένου από τη βιβλιοθήκη αναφορών του VBA και όταν στέλνουμε το αρχείο σε κάποιον άλλο, απαιτείται επίσης να ορίσετε την αναφορά σε αυτά τα αντίστοιχα αντικείμενα. Ωστόσο, το "Late Binding" δεν απαιτεί από τον χρήστη να ορίσει αναφορές αντικειμένων, επειδή, σε καθυστερημένη δέσμευση κωδικοποίησης, ορίζουμε την αναφορά στο αντίστοιχο αντικείμενο χρησιμοποιώντας τη συνάρτηση VBA "CreateObject".

Τι είναι το CreateObject στο Excel VBA;

"Δημιουργία αντικειμένου" όπως το ίδιο το όνομα λέει ότι θα δημιουργήσει το αναφερόμενο αντικείμενο από το Excel VBA. Έτσι, η συνάρτηση Δημιουργία αντικειμένου επιστρέφει την αναφορά σε ένα αντικείμενο που ξεκίνησε από ένα στοιχείο Active X.

Ακολουθεί η σύνταξη της συνάρτησης CreateObject στο VBA

  • Class: Το όνομα του αντικειμένου που προσπαθούμε να ξεκινήσουμε και να ορίσουμε την αναφορά στη μεταβλητή.
  • (Όνομα διακομιστή): Αυτή είναι μια προαιρετική παράμετρος. Εάν αγνοηθεί, θα χρησιμοποιεί μόνο το τοπικό μηχάνημα.

Παράδειγμα δημιουργίας συνάρτησης αντικειμένου στο Excel VBA

Ακολουθούν τα παραδείγματα του VBA CreateObject.

Παράδειγμα # 1

Τώρα θα δούμε πώς να ξεκινήσουμε την εφαρμογή PowerPoint από το Excel χρησιμοποιώντας τη συνάρτηση CreateObject στο VBA. Ανοίξτε το αρχείο excel και μεταβείτε στο παράθυρο επεξεργασίας της Visual Basic πατώντας το πλήκτρο ALT + F11 .

Κώδικας:

Sub CreateObject_Example1 () End Sub

Δηλώστε τη μεταβλητή ως PowerPoint.Application.

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

Κώδικας:

Sub CreateObject_Example1 () Dim PPT ως αντικείμενο End Sub

Εφόσον έχουμε δηλώσει τη μεταβλητή ως "Object", πρέπει να ορίσουμε την αναφορά στο αντικείμενο χρησιμοποιώντας τη λέξη-κλειδί "Set". Εισάγοντας τη λέξη-κλειδί "Ορισμός", αναφέρετε τη μεταβλητή και βάλτε ένα ίσο σύμβολο

Κώδικας:

Sub CreateObject_Example1 () Dim PPT ως σύνολο αντικειμένων PPT = End Sub

Τώρα ανοίξτε τη λειτουργία CreateObject.

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

Κώδικας:

Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub

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

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

Για τη μεταβλητή "PPT", χρησιμοποιήστε την ιδιότητα "Ορατό" και ορίστε την κατάσταση ως "True".

Κώδικας:

Sub CreateObject_Example1 () Dim PPT As Set Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub

Για να προσθέσετε μια διαφάνεια στο PPT, ορίστε τον παρακάτω κώδικα VBA.

Κώδικας:

Sub CreateObject_Example1 () Dim PPT As Set Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Προσθήκη End Sub

Τώρα εκτελέστε τον κωδικό χειροκίνητα ή μέσω του πλήκτρου F5 και δείτε την εφαρμογή "PowerPoint" να ανοίγει.

Μόλις ενεργοποιηθεί η εφαρμογή PowerPoint χρησιμοποιώντας τη μεταβλητή "PPT", μπορούμε να ξεκινήσουμε την πρόσβαση στην εφαρμογή PowerPoint.

Παράδειγμα # 2

Τώρα θα δούμε πώς να ξεκινήσουμε μια εφαρμογή Excel χρησιμοποιώντας τη συνάρτηση CreateObject στο VBA. Για άλλη μια φορά, δηλώστε τη μεταβλητή ως "Object".

Κώδικας:

Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub

The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.

Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.

Code:

Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub

Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.

Code:

Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub

Now it will activate the excel worksheet.

Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.

Code:

Sub CreateObject_Example3 () Dim ExlWb As Object Set ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub

Πράγματα που πρέπει να θυμάστε για το CreateObject στο VBA

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

ενδιαφέροντα άρθρα...