Funkcia CreateObject

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Poznámka

Funkcia, metóda, objekt alebo vlastnosť, ktoré sú popísané v tejto téme, sú vypnuté, ak je služba Microsoft Jet Expression Service spustená v režime karantény, ktorý zabraňuje vo vyhodnocovaní možných nebezpečných výrazov. Ďalšie informácie o režime karantény nájdete vyhľadaním výrazu „režim karantény“ v Pomocníkovi.

Vytvorenie a vrátenie odkazu na objekt ActiveX.

Syntax

CreateObject(trieda [, názov servera] )

Syntax funkcie CreateObject má tieto argumenty:

Argument Popis
trieda Povinný argument. Variant (String). Názov aplikácie a trieda objektu, ktorý chcete vytvoriť.
názov servera Voliteľný argument. Variant (String). Názov sieťového servera, na ktorom sa objekt vytvorí. Ak je názov servera prázdny reťazec (""), použije sa lokálny počítač.

    

Argument classpoužíva syntax appname.objecttype a má tieto časti:

Časť Popis
názovaplikácie Povinný argument. Variant (String). Názov aplikácie, ktorá poskytuje objekt.
typ objektu Povinný argument. Variant (String). Typ alebo trieda objektu, ktorá sa má vytvoriť.

    

Poznámky:

Každá aplikácia podporujúca automatizáciu poskytuje aspoň jeden typ objektu. Aplikácia na spracovanie textu môže napríklad poskytovať objekt Aplikácia, DokumentPanel s nástrojmi.

Ak chcete vytvoriť objekt ActiveX, priraďte objekt vrátený funkciou CreateObject k objektovej premennej:

Poznámka

Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.

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

V tomto príklade budeme automatizovať objekt excelového tabuľkového hárka z accessovej databázy. Tento kód spustí aplikáciu, ktorá vytvorí objekt, v tomto prípade tabuľkový hárok Microsoft Excelu. Po vytvorení objektu naň odkazujete v kóde pomocou objektovej premennej, ktorú ste definovali. V nasledujúcom príklade pristupujete k vlastnostiam a metódam nového objektu pomocou objektovej premennej ExcelSheeta ďalších objektov programu Excel vrátane objektu Application a kolekcie 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

Deklarovaním objektovej premennej klauzulou As Object sa vytvorí premenná, ktorá môže obsahovať odkaz na ľubovoľný typ objektu. Prístup k objektu prostredníctvom tejto premennej je však viazaný na neskoro; To znamená, že väzba nastane až po spustení programu. Ak chcete vytvoriť objektovú premennú, ktorej výsledkom je včasná väzba, t. j. väzba, ktorá nastane po vytvorení programu, deklarujte objektovú premennú konkrétnou identifikáciou triedy. Môžete napríklad deklarovať a vytvoriť nasledujúce odkazy na 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)

Odkaz prostredníctvom premennej s vopred viazanou hodnotou môže poskytnúť lepší výkon, ale môže obsahovať iba odkaz na triedu určenú v deklarácii.

Objekt, ktorý vrátila funkcia CreateObject, môžete poskytnúť funkcii, ktorá objekt očakáva ako argument. Nasledujúci kód napríklad vytvorí a poskytne odkaz na objekt Excel.Application:

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

Objekt môžete vytvoriť na vzdialenom zosieťovanom počítači tým, že názov počítača poskytnete v argumente názov serverafunkcie CreateObject. Tento názov je rovnaký ako časť Názov počítača v spoločnom názve: pre zdieľanie s názvom "\\Môj server\Verejné" je názov servera "Môj server".

Poznámka

Ďalšie informácie o aktivácii zobrazenia aplikácie na vzdialenom zosieťovanom počítači nájdete v dokumentácii COM (pozri webová lokalita Microsoft Developer Network). Možno budete musieť pridať kľúč databázy Registry pre vašu aplikáciu.

Nasledujúci kód vráti číslo verzie inštancie programu Excel, ktorý je spustený vo vzdialenom počítači s názvom MyServer:

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

Ak vzdialený server neexistuje alebo nie je k dispozícii, počas spúšťania sa vyskytne chyba.

Poznámka

Ak aktuálna inštancia objektu nie je k dispozícii, použitie funkciu CreateObject. Ak inštancia objektu už je spustená, spustí sa nová inštancia a vytvorí sa objekt zadaného typu. Ak chcete použiť aktuálnu inštanciu alebo spustiť aplikáciu, ktorá má načítať súbor, použite funkciu GetObject.

Ak sa objekt zaregistroval ako objekt jednej inštancie, vytvorí sa iba jedna inštancia objektu bez ohľadu na to, koľkokrát sa funkcia CreateObject spustí.

Príklad

V tomto príklade je funkcia CreateObject použitá na nastavenie odkazu (

xlApp

) na Excel. Funkcia použije odkaz na prístup k vlastnosti Viditeľné programu Excel a potom použije metódu Ukončiť na zatvorenie. Nakoniec sa uvoľní samotný odkaz.

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.