Funkcija GetObject

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

Napomena : Funkcija, način, objekt ili svojstvo koje su opisane u ovoj temi onemogućeno je ako Microsoft Jet Expression Service izvodi u načinu rada s memorijom za testiranje, što sprječava potencijalno nesigurnih izraza. Dodatne informacije o načinu rada s memorijom za testiranje ključnoj riječi "način rada s memorijom za testiranje" u sustavu pomoći.

Vraća referencu na objekt koji omogućuje ActiveX komponenta.

Sintaksa

GetObject ([put ] [, predmete ] )

Sintaksa funkcije GetObject sadrži sljedeće argumente:

Argument

Opis

put

Neobavezno. Variant (Niz). Cijeli put i naziv datoteke koja sadrži objekt za dohvaćanje. Ako se izostavi putom , potreban je Predmet .

klase

Neobavezno. Variant (Niz). Niz koji predstavlja klasa objekta.


Klase argument koristi sintaksu appname.vrstu objekta i sastoji se od ovih dijelova:

Dio

Opis

appname

Obavezan. Variant (Niz). Naziv aplikacije koja omogućuje objekt.

vrstu objekta

Obavezan. Variant (Niz). Vrsta ili klasa objekta da biste stvorili.


Napomene

Napomena : Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA). Da biste pronašli dodatne informacije o radu s VBA-om, na padajućem popisu uz stavku Traži odaberite stavku Referenca za razvojne inženjere pa unesite jedan ili više izraza u okvir pretraživanja.

Funkcija GetObject omogućuje pristup ActiveX objektu iz datoteke, a zatim dodijelite objekt varijabla objekta. Koristite naredbu Postavi da biste dodijelite objekt koji je vratila GetObject varijabla objekta. Ako, na primjer:

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

Pri izvođenju kod pokretanja programa pridružene navedeni putom i aktivacije objekta u navedenu datoteku.

Ako je putom niz nulte duljine (""), funkcija GetObject vraća novu instancu objekta određene vrste. Ako je izostavljen argument putom , GetObject vraća trenutni aktivni objekt određene vrste. Ako ne određene vrste postoji objekt, javlja se pogreška.

Neke aplikacije dopuštaju aktiviranje dio datoteke. Dodajte uskličnik (!) na kraj naziva datoteke i slijedite nizom koji prepoznaje dio datoteke koji želite aktivirati. Dodatne informacije o stvaranju tog niza potražite u dokumentaciji za aplikaciju koja je stvorila objekt.

Na primjer, u aplikaciji crteža možda višestruke slojeve za crtež pohranjen u datoteci. Sljedeći kod možete koristiti da biste aktivirali sloja u crtežu pod nazivom SCHEMA.CAD:

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

Ako ne navedete objekta predmete, automatizacija određuje aplikacija za pokretanje i objekt da biste aktivirali, na temelju naziva datoteke koji navedete. Neke datoteke, no možda podržava više od jedne klase objekta. Na primjer, crtež može podržavati tri različite vrste objekata: objekt aplikacija , crtežni objekt i na alatnoj traci objekt koji su dio iste datoteke. Da biste odredili koji objekt u datoteku koju želite aktivirati, koristite argument neobavezno predmete . Ako, na primjer:

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

U ovom primjeru FIGMENT je naziv crtanju aplikacije i DRAWING jedan je od vrste objekata koji podržava.

Nakon aktiviranja objekta upućujete ga u kod korištenjem varijable objekta koji ste definirali. U prethodnom primjeru pristupate svojstva i metode novog objekta korištenjem varijable objekta MyObject. Ako, na primjer:

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

Napomena : Kada je trenutna instanca objekta ili ako želite stvoriti objekt s datotekom koja je već učitan, koristite funkciju GetObject . Ako nema trenutne instance, a ne želite da se objekt s datotekom učitati, koristite funkciju CreateObject .

Ako neki objekt registrirao kao objekt jednostruke instance, samo jednu instancu objekta stvoriti, bez obzira koliko je puta CreateObject se izvršava. S objektom jednokratni, GetObject uvijek vraća istu instancu prilikom poziva s niz nulte duljine ("") sintaksa i uzrokuje pogrešku ako je izostavljen argument put . Funkcija GetObject ne možete koristiti za upućivanje predmete stvorene pomoću programa Visual Basic.

Primjer

U ovom se primjeru koristi funkcija GetObject da biste dobili reference na određene Microsoft Office Excel 2007 radnog lista (MyXL). Koristi svojstvo aplikacije na radnom listu da bi Excel vidljiva, da biste ga zatvorili i tako dalje. Korištenjem dvaju API poziva, postupak DetectExcel Sub izgleda za Excel, a ako je pokrenut, unosi u tablici objekata radi. Prvi poziv GetObject uzrokuje pogrešku ako nije pokrenut Microsoft Excel. U ovom primjeru pogrešku uzrokuje zastavice ExcelWasNotRunning biti postavljena na True. Drugi poziv GetObject određuje datoteku da biste otvorili. Ako Excel nije pokrenut, drugi poziv ga započinje i vraća referencu na radni list koji predstavlja određena datoteka mytest.xls. Datoteka se mora nalaziti na određenom mjestu; u suprotnom se generira u programu Visual Basic pogreška automatizacije. Nakon toga Šifra primjer omogućuje programu Excel i prozor koji sadrži određeni radni list vidljivi. Na kraju, ako je bez prethodne verzije programa Excel pokrenut, kod koristi objekt aplikacijeQuit način za zatvaranje programa Excel. Ako aplikacija već pokrenut, bez je pokušaj da biste ga zatvorili. Referenca je objavio tako da postavite 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 : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×