Funcția GetObject

Important : Acest articol este tradus automat, consultați exonerarea de răspundere. Versiunea în limba engleză a acestui articol se poate găsi aici pentru referință.

Notă : Funcția, metodă, obiecte sau proprietăți cum este descris în acest subiect este dezactivat dacă serviciul de expresie Microsoft Jet se execută în modul sandbox, ceea ce împiedică evaluarea expresii potențial nesigure. Pentru mai multe informații despre modul sandbox, căutați "modul sandbox" în ajutor.

Returnează o referință la un obiect furnizat de o componentă ActiveX.

Sintaxă

GetObject ([nume cale ] [, clasa ] )

Sintaxa funcției GetObject are următoarele argumente:

Argument

Descriere

nume de cale

Opțional. Variant (Șir). Calea și numele de fișier care conține obiecte pentru a regăsi. Dacă nume cale este omis, școlar este necesar.

școlar

Opțional. Variant (Șir). Un șir care reprezintă clasă a obiectului.


Clasa argument utilizează sintaxa appname.objecttype și are următoarele părți:

Parte

Descriere

AppName

Sunt necesare. Variant (Șir). Numele aplicației oferind obiectul.

objecttype

Sunt necesare. Variant (Șir). Tip sau clasa de obiect pentru a crea.


Observații

Notă : Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

Utilizați funcția GetObject pentru a accesa un obiect ActiveX dintr-un fișier și atribuiți un variabilă obiectobiectul. Utilizați declarația setarea pentru a atribui obiectul returnat de GetObject la variabilă obiect. De exemplu:

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

Atunci când acest cod este executat, aplicația asociate cu specificat nume cale este pornit și obiectul în fișierul specificat este activat.

Dacă nume cale este un șir de lungime zero (""), GetObject returnează o instanță nouă obiect de tip specificat. Dacă argumentul de nume de cale este omis, GetObject returnează un obiect activ în prezent de tip specificat. Dacă există niciun obiect de tip specificat, se produce o eroare.

Unele aplicații vă permit să activați parte dintr-un fișier. Adăugați un semn de exclamare (!) până la sfârșitul numele de fișier și urmați-l cu un șir care identifică parte din fișierul pe care doriți să activați. Pentru informații despre cum să creați acest șir, Consultați documentația pentru aplicație creată de obiect.

De exemplu, într-o aplicație desen este posibil să nu mai multor straturi la un desen stocate într-un fișier. Poate utiliza următorul cod pentru a activa un strat într-un desen, numit SCHEMA.CAD:

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

Dacă nu specificați obiect școlar, automatizare determină aplicația pentru a porni și obiect pentru a activa, bazat pe numele de fișier pe care le furnizați. Unele fișiere cu toate acestea, poate fi acceptă mai multe categorii de obiect. De exemplu, un desen poate acceptă trei tipuri diferite de obiecte: un obiect de aplicație , un obiect desenat și un obiect din bara de instrumente , care sunt părți ale aceluiași fișier. Pentru a specifica ce obiect într-un fișier pe care doriți să o activați, utilizați argumentul opțional școlar . De exemplu:

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

În exemplul, FIGMENT este numele unui desen aplicații și DRAWING este unul dintre tipurile de obiect acceptă.

După ce un obiect este activat, referință codul utilizând variabilă obiect care definit. În exemplul anterior, puteți accesa proprietăți și metode de obiect nou utilizând obiectul variabile MyObject. De exemplu:

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

Notă : Utilizați funcția GetObject atunci când există o instanță curentă a obiectului sau dacă doriți să creați obiectul cu un fișier de încărcat deja. Dacă nu există nicio instanță curent și nu doriți ca obiect începe cu un fișier de încărcat, utilizați funcția CreateObject .

Dacă un obiect în sine are înregistrate ca o singură instanță obiect, o singură instanță a obiectului este creat, indiferent de câte ori este executat CreateObject . Cu o singură instanță obiect, GetObject returnează întotdeauna aceeași instanță atunci când numit cu șir de lungime zero ("") sintaxa, și determină o eroare dacă se omite argumentul de nume de cale . Nu se poate utiliza GetObject pentru a obține o referință la o clasă create cu Visual Basic.

Exemplu

Acest exemplu utilizează funcția GetObject pentru a obține o referință la o foaie de lucru specifice Microsoft Office Excel 2007 (MyXL). Utilizează proprietatea de aplicație din foaia de lucru pentru a face Excel vizibil, închideți-l și etc. Utilizând două API apeluri, procedură DetectExcel Sub Arată pentru Excel și în cazul în care rulează, îl introduce în tabelul de obiect rulează. Prima apelul GetObject provoacă o eroare în cazul în care Microsoft Excel nu rulează deja. În exemplul, eroarea cauze semnalizare ExcelWasNotRunning să fie setată la True. A doua apelul GetObject specifică un fișier pentru a deschide. Dacă Excel nu rulează deja, al doilea apel îl pornește și returnează o referință la foaia de lucru reprezentat de fișierul specificat, mytest.xls. Fișierul trebuie să existe în locația specificată; în caz contrar, este generată eroare Visual Basic automatizare eroare. În continuare, codul exemplu face atât Excel și în fereastra care conține foaia de lucru specificate vizibile. În sfârșit, dacă a existat nicio versiune anterioară de Excel rulează, codul utilizează obiectul aplicațieQuit metodă să închideți Excel. Dacă aplicația a fost deja rulează, nici o încercare se efectuează închideți-l. Referința propriu-zis este lansat setând la nimic.

' 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

Notă : Exonerare de răspundere pentru traducere automată: Acest articol a fost tradus de un sistem computerizat, fără intervenție umană. Microsoft oferă aceste traduceri automate pentru a ajuta utilizatorii vorbitori de alte limbi decât engleza să beneficieze de conținutul despre produsele, serviciile și tehnologiile Microsoft. Pentru că articolul a fost tradus de un computer, poate conține erori de vocabular, sintaxă sau gramatică.

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×