Funkcija „CreateObject“

Primenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Napomena

Funkcija, metod, objekat ili svojstvo opisani u ovoj temi onemogućeni su ako je usluga Microsoft Jet Expression Service pokrenuta u režimu "sandbox", što sprečava procenu potencijalno nebezbednih izraza. Više informacija o režimu "sandbox" potražite u pomoći za "režim sandbox".

Kreira i daje referencu na ActiveX objekat.

Sintaksa

CreateObject(klasa [, imeservera] )

Sintaksa funkcije CreateObject ima sledeće argumente:

Argument Opis
klasa Obavezno. Varijanta (niska). Ime aplikacije i klasa objekta koji treba napraviti.
Ime servera Opcionalno. Varijanta (niska). Ime mrežnog servera na kom će objekat biti kreiran. Ako je servername prazna niska (""), koristi se lokalni računar.

    

Argument classkoristi sintaksu appname.objecttype i sastoji se od sledećih delova:

Deo Opis
ime aplikacije Obavezno. Varijanta (niska). Ime aplikacije koja obezbeđuje objekat.
tipobjekta Obavezno. Varijanta (niska). Tip ili klasa objekta koji treba napraviti.

    

Napomene

Svaka aplikacija koja podržava automatizaciju ima najmanje jedan tip objekta. Na primer, aplikacija za obradu teksta može da sadrži objekat aplikacije , objekat dokumenta i objekat trake sa alatkama .

Da biste kreirali ActiveX objekat, dodelite objekat koji daje CreateObject promenljivoj objekta:

Napomena

Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Za više informacija o radu sa VBA modulom izaberite stavku Referenca razvojnog programera sa padajuće liste pored stavke Pretraga i unesite termine u polje za pretragu.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

U ovom primeru automatizovaćemo objekat Excel unakrsne tabele iz Access baze podataka. Taj kôd pokreće aplikaciju koja kreira objekat, u ovom slučaju Microsoft Excel unakrsnu tabelu. Kada kreirate objekat, upućujete na njega u kodu koristeći promenljivu objekta koju ste definisali. U sledećem primeru možete da pristupite svojstvima i metodama novog objekta pomoću promenljive objekta objekta, ExcelSheetkao i drugih Excel objekata, uključujući objekat Application i kolekciju Cells .

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

Deklarisanje promenljive objekta pomoću odredbe As Object kreira promenljivu koja može da sadrži referencu na bilo koji tip objekta. Međutim, pristup objektu preko te promenljive je kasno vezan; To jest, do povezivanja dolazi kada je program pokrenut. Da biste kreirali promenljivu objekta koja ima za rezultat rano povezivanje, to jest, povezivanje kada je program kompajliran, deklarišite promenljivu objekta sa određenim ID-om klase. Na primer, možete deklarisati i kreirati sledeće Excel reference:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

Referenca kroz rano vezanu promenljivu može dati bolje performanse, ali može sadržati samo referencu na klasu navedenu u deklaraciji.

Objekat koji je vratila funkcija CreateObject možete da prosledite funkciji u kojoj se objekat očekuje kao argument. Na primer, sledeći kôd kreira i prosleđuje referencu na objekat Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Objekat na udaljenom umreženom računaru možete da napravite tako što ćete proslediti ime računara u argument "servername" za CreateObject. To ime je isto kao deo imena deljenja koji sadrži ime računara: za deljenje pod imenom "\\MyServer\Public", ime servera je "MyServer".

Napomena

Pogledajte COM dokumentaciju (pogledajte Microsoft Developer Network) za dodatne informacije o tome kako da aplikacija bude vidljiva na udaljenom umreženom računaru. Možda ćete morati da dodate ključ registratora za aplikaciju.

Sledeći kôd daje broj verzije instance programa Excel koja se izvršava na udaljenom računaru i zove se MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Ako udaljeni server ne postoji ili je nedostupan, dolazi do greške tokom izvršavanja.

Napomena

Koristite CreateObject kada trenutno nema instance objekta. Ako je instanca objekta već pokrenuta, pokreće se nova instanca i kreira se objekat navedenog tipa. Da biste koristili trenutnu instancu ili da biste pokrenuli aplikaciju i ona učitala datoteku, koristite funkciju GetObject .

Ako se objekat registrovao kao objekat sa jednom instancom, kreira se samo jedna instanca objekta, bez obzira na to koliko puta se CreateObject izvršava.

Primer

Ovaj primer koristi funkciju CreateObject za postavljanje reference (

xlApp

) u Excel. Ona koristi referencu za pristup svojstvu " Vidljivo " programa Excel, a zatim koristi metod povlačenja programa Excel da bi ga zatvorila. Konačno, sama referenca je objavljena.

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
    ' You may have to set Visible property to True
    ' if you want to see the application.
xlApp.Visible = True
    ' Use xlApp to access Microsoft Excel's 
    ' other objects.
xlApp.Quit    ' When you finish, use the Quit method to close 
Set xlApp = Nothing    ' the application, then release the reference.