Funkcija „GetObject“

Važno : Ovaj članak je mašinski preveden, pogledajte odricanje odgovornosti. Pogledajte verziju ovog članka na engleskom jeziku ovde za referencu.

Napomena : Funkcija, metod, objekat ili svojstvo opisane u ovoj temi je onemogućen ako Microsoft Jet Expression usluge pokrenut u "sandbox" režim, što sprečava od potencijalno nebezbedne izraze. Za više informacija o "sandbox" režim potražite "" sandbox "režim" u pomoći.

Daje referencu na objekat dobijen od ActiveX komponente.

Sintaksa

GetObject ( putanje [, klase ] )

Sintaksa funkcije GetObject ima sledeće argumente:

Argument

Opis

putanje

Opcionalno. Varijante (Niska). Punu putanju i ime datoteke koja sadrži objekat da biste preuzeli. Ako ime putanje izostavljen, potreban je klasa .

klase

Opcionalno. Varijante (Niska). Niska koja predstavlja klasa objekta.


Klasa argument koristi sintaksu imeaplikacije.tip objekta i ima tri dela:

Deo

Opis

APPNAME

Obavezno. Varijante (Niska). Ime aplikacije koja obezbeđuje objekat.

Tip objekta

Obavezno. Varijante (Niska). Tipa ili klase objekta da biste kreirali.


Primedbe

Napomena : Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Ako vam je potrebno više informacija o radu sa VBA modulom, izaberite stavku Referenca razvojnog programera sa padajuće liste pored stavke Pretraga i unesite jedan ili više termina u polje za pretragu.

Koristite funkciju GetObject da biste pristupili ActiveX objektu iz datoteke i dodelite objekat sa promenljiva objekta. Koristite izjavu Podešavanje da biste objekat koji je vratio GetObject da promenljiva objekta. Na primer:

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

Kada se izvrši ovaj kôd, pokretanja aplikacija koja je povezana sa navedenom putanje i objekat u navedenu datoteku je aktiviran.

Ako je putanje niske nulte dužine (""), Funkcija GetObject vraća novu instancu objekta navedenog tipa. Ako argument putanje izostavi, GetObject daje trenutno aktivni objekat navedenog tipa. Ako nijedan objekat navedenog tipa postoji, doći će do greške.

Neke aplikacije omogućavaju vam da aktivira deo datoteke. Dodajte znak uzvika (!) na kraj imena datoteke i iza njega nisku koja identifikuje deo datoteku koju želite da aktivirate. Za informacije o tome kako da kreirate ovu nisku, pogledajte dokumentaciju za aplikaciju koja je kreirala objekat.

Na primer, u aplikaciji za crtanje možda imate više slojeva na crtež skladište u datoteci. Možete da koristite sledeći kôd da aktivirate sloj unutar crtež koji se zove SCHEMA.CAD:

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

Ako ne navedete objekta klase, Automatizacija određuje aplikaciju da biste započeli i na objekat da biste aktivirali, na osnovu obezbedite ime datoteke. Neke datoteke, međutim, podržavaju više od jedne klase objekta. Na primer, možda crtež podržava tri različita tipa objekta: objekat aplikacije , crtež i objekta u traci sa alatkama koje su deo iste datoteke. Da biste naveli koji objekat iz datoteke koji želite da aktivirate, koristite argument opcionalno klase . Na primer:

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

U primeru, FIGMENT je ime crtanje aplikacije i DRAWING je jedan od tipova objekata koje podržava.

Kada se aktivira objekat, ne upućujete u kodu koristeći promenljivu objekta koji ste definisali. U prethodnom primeru, pristupe svojstva i metode za novi objekat pomoću objekta promenljive MyObject. Na primer:

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

Napomena : Koristite funkciju GetObject kada postoji trenutna instanca objekta ili ako želite da kreirate objekat sa datotekom već učitana. Ako postoji tekuća instanca i ne želite objekta sa učitanom datotekom, koristite funkciju CreateObject .

Ako objekat ima samu registrovana kao objekta u jednom instancom, samo jednom instancom objekta se kreira, bez obzira koliko puta CreateObject se izvršava. Sa jednom instancom objekat, GetObject uvek vraća istu instancu kada se zove pomoću niske nulte dužine ("") sintaksu i dovodi do greške ako argument putanje izostavi. Ne možete da koristite GetObject za dobijanje reference na klasu kreiranu pomoću programa Visual Basic.

Primer

Ovaj primer koristi funkciju GetObject da biste dobili referencu na određene Microsoft Office Excel 2007 radnog lista (MyXL). Koristi svojstvo aplikacije na radnom listu da biste Excel vidljiv, da biste je zatvorili i tako dalje. Koristite dva API poziva, "DetectExcel" Sub procedura traži Excel i ako je pokrenut, unosi u tabelu pokrenutih objekata. Prvi poziv GetObject dovodi do greške ako već nije pokrenut Microsoft Excel. U primeru, grešku izaziva ExcelWasNotRunning zastavicu da bude podešen na vrednost True. Drugi poziv GetObject navodi datoteku da biste otvorili. Ako već nije pokrenut Excel, drugi poziv ga pokreće i daje referencu na radni list predstavljen navedenu datoteku, mytest.xls. Datoteka mora da postoji u navedenoj lokaciji. u suprotnom, generiše se greška programa Visual Basic za automatizaciju greške. Zatim, na primer kôd čini Excel i prozor koji sadrži navedeni radni list. Na kraju, ako nema prethodne verzije programa Excel koja je pokrenuta, kôd koristi aplikaciju objekat tut metod da zatvorite program Excel. Ako aplikacija je pokrenut, neće biti pokušaja da biste je zatvorili. Referenca se oslobađa postavljanjem na ništa.

' 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

Napomena : Odricanje odgovornosti za mašinski prevod: Ovaj članak je preveo računarski sistem bez ljudske intervencije. Microsoft nudi ove mašinske prevode da bi pomogao korisnicima koji ne govore engleski da uživaju u sadržaju o Microsoft proizvodima, uslugama i tehnologijama. Budući da je članak mašinski preveden, može da sadrži greške u rečniku, sintaksi ili gramatici.

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×