Συνάρτηση GetObject

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

Σημείωση: Η συνάρτηση, τη μέθοδο, αντικείμενο ή ιδιότητα που περιγράφονται σε αυτό το θέμα είναι απενεργοποιημένη, εάν η Microsoft Jet Expression Service εκτελείται σε λειτουργία φίλτρου, η οποία δεν επιτρέπει την αξιολόγηση της ενδεχομένως μη ασφαλών παραστάσεων. Για περισσότερες πληροφορίες σχετικά με τη λειτουργία sandbox, κάντε αναζήτηση για "η λειτουργία φίλτρου" στη Βοήθεια.

Επιστρέφει μια αναφορά σε ένα αντικείμενο που παρέχεται από ένα στοιχείο ActiveX.

Σύνταξη

GetObject ([όνομα διαδρομής ] [, κλάση ] )

Η σύνταξη της συνάρτησης GetObject περιλαμβάνει τα παρακάτω ορίσματα:

Όρισμα

Περιγραφή

όνομα διαδρομής

Προαιρετικό. Διακύμανσης (Συμβολοσειρά). Η πλήρης διαδρομή και το όνομα του αρχείου που περιέχει το αντικείμενο προς ανάκτηση. Εάν παραλειφθεί το όρισμα όνομα διαδρομής , απαιτείται τάξης .

τάξης

Προαιρετικό. Διακύμανσης (Συμβολοσειρά). Μια συμβολοσειρά που αντιπροσωπεύει το κλάση του αντικειμένου.


Η κλάσηόρισμα χρησιμοποιεί τη σύνταξη όνομα_εφαρμογής.Τύπος_αντικειμένου και έχει τα εξής τμήματα:

Τμήμα

Περιγραφή

όνομα_εφαρμογής

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

Τύπος_αντικειμένου

Απαιτείται. Διακύμανσης (Συμβολοσειρά). Τύπος ή τη κλάση του αντικειμένου για να δημιουργήσετε.


Παρατηρήσεις

Σημείωση: Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε ένα έργο Visual Basic για τη λειτουργική μονάδα Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, επιλέξτε Αναφορά προγραμματιστών στην αναπτυσσόμενη λίστα δίπλα στο στοιχείο Αναζήτηση και πληκτρολογήστε μία ή περισσότερες όρων στο πλαίσιο αναζήτησης.

Χρησιμοποιήστε τη συνάρτηση GetObject για πρόσβαση σε ένα αντικείμενο ActiveX από ένα αρχείο και αντιστοιχίστε το αντικείμενο σε μια μεταβλητή αντικειμένου. Χρησιμοποιήστε την πρόταση Ρύθμιση για να εκχωρήσετε το αντικείμενο που επιστρέφονται από GetObject στη μεταβλητή αντικειμένου. Για παράδειγμα:

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

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

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

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

Για παράδειγμα, σε μια εφαρμογή σχεδίου μπορεί να έχετε πολλά επίπεδα σε σχέδιο αποθηκεύονται σε ένα αρχείο. Μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα για να ενεργοποιήσετε ένα επίπεδο μέσα σε ένα σχέδιο που ονομάζεται SCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

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

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
"FIGMENT.DRAWING")

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

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

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

Σημείωση: Χρησιμοποιήστε τη συνάρτηση GetObject όταν υπάρχει μια τρέχουσα παρουσία του αντικειμένου ή εάν θέλετε να δημιουργήσετε το αντικείμενο με ένα αρχείο ήδη φορτωθεί. Εάν δεν έχει τρέχουσα παρουσία και δεν θέλετε το αντικείμενο να ξεκινήσει με ένα αρχείο φορτωθεί, χρησιμοποιήστε τη συνάρτηση CreateObject .

Εάν ένα αντικείμενο έχει δηλωθεί ως ένα αντικείμενο μίας παρουσίας, δημιουργείται μόνο μία παρουσία του αντικειμένου, ανεξάρτητα από το πόσες φορές CreateObject εκτελείται. Με ένα αντικείμενο μίας παρουσίας, GetObject επιστρέφει πάντα την ίδια παρουσία όταν καλείται με τη συμβολοσειρά μηδενικού μήκους ("") σύνταξη και προκαλεί σφάλμα Εάν παραλειφθεί το όρισμα διαδρομή . Δεν μπορείτε να χρησιμοποιήσετε GetObject για να αποκτήσετε μια αναφορά σε μια κλάση που έχει δημιουργηθεί με τη Visual Basic.

Παράδειγμα

Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση GetObject για να λάβετε μια αναφορά σε ένα φύλλο εργασίας συγκεκριμένα Microsoft Office Excel 2007 (MyXL). Χρησιμοποιεί την ιδιότητα εφαρμογή το φύλλο εργασίας για να κάνετε Excel ορατό, για να κλείσετε και ούτω καθεξής. Με χρήση δύο κλήσεων API, η διαδικασία DetectExcel Sub μοιάζει για το Excel και, εάν εκτελείται, την είσοδο στον πίνακα αντικειμένου εκτελείται. Την πρώτη κλήση GetObject προκαλεί σφάλμα εάν το Microsoft Excel δεν εκτελείται ήδη. Στο παράδειγμα, το σφάλμα προκαλεί τη σημαία ExcelWasNotRunning θα οριστεί στην τιμή True. Η δεύτερη κλήση GetObject καθορίζει ένα αρχείο για να το ανοίξετε. Εάν το Excel δεν εκτελείται ήδη, η δεύτερη κλήση ξεκινά και επιστρέφει μια αναφορά στο φύλλο εργασίας που αντιπροσωπεύονται από το καθορισμένο αρχείο, mytest.xls. Το αρχείο πρέπει να υπάρχει στη συγκεκριμένη τοποθεσία. Διαφορετικά, το Visual Basic Σφάλμα αυτοματισμού σφάλμα. Στη συνέχεια, ο κώδικας του παραδείγματος εμφανίζει το Excel και στο παράθυρο που περιέχει το καθορισμένο φύλλο εργασίας. Τέλος, εάν υπήρχε χωρίς προηγούμενη έκδοση του Excel που εκτελείται, ο κώδικας χρησιμοποιεί η εφαρμογή μέθοδος του αντικειμένου πουt για να κλείσετε το Excel. Εάν η εφαρμογή εκτελείται ήδη, δεν γίνεται προσπάθεια για να την κλείσετε. Η ίδια ή αναφορά έχει κυκλοφορήσει, ορίζοντας το τίποτα.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable to hold reference
' to Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
On Error Resume Next ' Defer error trapping.
' GetObject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
DetectExcel
' Set the object variable to reference the file you want to see.
Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Do manipulations of your file here.
' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Release reference to the
' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
Const WM_USER = 1024
Dim hWnd As Long
' If Excel is running this API call returns its handle.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 means Excel not running.
Exit Sub
Else
' Excel is running so use the SendMessage API
' function to enter it in the Running Object Table.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub
Αναπτύξτε τις δεξιότητές σας στο Office
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×