Funkcija CreateObject

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

Napomena

Funkcija, metoda, objekt ili svojstvo opisani u ovoj temi onemogućeni su ako je servis izraza Microsoft Jet pokrenut u načinu rada s memorijom za testiranje, što sprječava procjenu potencijalno nesigurnih izraza. Dodatne informacije o načinu rada s memorijom za testiranje potražite u pomoći "način rada s memorijom za testiranje".

Stvara i vraća referencu na ActiveX objekt.

Sintaksa

CreateObject(klasa [, naziv poslužitelja] )

Sintaksa funkcije CreateObject sadrži ove argumente:

Argument Opis
klasa Obavezno. Variant (niz). Naziv i klasa aplikacije objekta koji treba stvoriti.
naziv poslužitelja Neobavezno. Variant (niz). Naziv mrežnog poslužitelja na kojem će se objekt stvoriti. Ako je servername prazan niz (""), koristi se lokalno računalo.

    

Argument classkoristi sintaksu appname.objecttype i sastoji se od sljedećih dijelova:

Dio Opis
naziv aplikacije Obavezno. Variant (niz). Naziv aplikacije koja sadrži objekt.
vrstaobjekta Obavezno. Variant (niz). Vrsta ili klasa objekta koji će se stvoriti.

    

Napomene

Svaka aplikacija koja podržava automatizaciju nudi najmanje jednu vrstu objekta. Na primjer, program za obradu teksta može sadržavati objekte aplikacije , objekte Document i objekte alatne trake .

Da biste stvorili ActiveX objekt, dodijelite objekt koji je vratila funkcija CreateObject varijabli objekta:

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.

' 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 ćemo primjeru automatizirati objekt proračunske tablice programa Excel iz baze podataka programa Access. Taj kod pokreće aplikaciju koja stvara objekt, u ovom slučaju proračunsku tablicu programa Microsoft Excel. Kada stvorite objekt, referencirajte ga u kodu pomoću definirane varijable objekta. U sljedećem primjeru svojstvima i metodama novog objekta pristupate pomoću varijable ExcelSheetobjekta i drugih objekata programa Excel, uključujući Application objekt i zbirku 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

Deklariranje objektne varijable s uvjetom As Object stvara varijablu koja može sadržavati referencu na bilo koju vrstu objekta. Međutim, pristup objektu putem te varijable kasni je; To jest, povezivanje se odvija kada se program pokrene. Da biste stvorili varijablu objekta koja rezultira ranim povezivanjem, tj. vezanjem prilikom kompiliranja programa, deklarirajte varijablu objekta s određenim ID-jem klase. Možete, primjerice, deklarirati i stvoriti sljedeće reference programa Excel:

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 putem rano vezane varijable može dati bolje performanse, ali može sadržavati samo referencu na klasu navedenu u deklaraciji.

Objekt koji vraća funkcija CreateObject možete proslijediti funkciji koja od objekta očekuje argument. Sljedeći kod, primjerice, stvara i prosljeđuje referencu na objekt Excel.Application:

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

Objekt možete stvoriti na udaljenom umreženom računalu tako da naziv računala proslijedite argumentu servernamefunkcije CreateObject. Taj je naziv isti kao i dio naziva računala u nazivu zajedničkog resursa: za zajedničko mjesto naziva "\\MyServer\Public" naziv poslužitelja jest "MyServer".

Napomena

Dodatne informacije o vidljivosti aplikacije na udaljenom umreženom računalu potražite u dokumentaciji za COM (pogledajte Microsoft Developer Network). Možda ćete morati dodati ključ registra za aplikaciju.

Sljedeći kod vraća broj verzije instance programa Excel koja je pokrenuta na udaljenom računalu s nazivom MyServer:

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

Ako udaljeni poslužitelj ne postoji ili nije dostupan, dolazi do pogreške pri izvođenju.

Napomena

Korištenje značajke CreateObject kada trenutno nema instance objekta. Ako je instanca objekta već pokrenuta, pokreće se nova instanca i stvara se objekt navedene vrste. Da biste koristili trenutnu instancu ili pokrenuli aplikaciju i njome učitali datoteku, upotrijebite funkciju GetObject .

Ako se objekt registrirao kao objekt s jednom instancom, stvara se samo jedna instanca objekta, bez obzira koliko se puta CreateObject izvršava.

Primjer

U ovom se primjeru za postavljanje reference koristi funkcija CreateObject (

xlApp

) u Excel. Koristi referencu za pristup svojstvu Vidljivo programa Excel, a zatim ga zatvara metodom zatvaranja programa Excel. Konačno, objavljuje se sama referenca.

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.