Funkce CreateObject

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Poznámka

Funkce, metoda, objekt nebo vlastnost popsané v tomto tématu jsou zakázány, pokud je služba Microsoft Jet Expression Service spuštěna v režimu izolovaného prostoru (sandbox), který znemožňuje vyhodnocení potenciálně nebezpečných výrazů. Další informace o režimu izolovaného prostoru vyhledáte zadáním dotazu "režim izolovaného prostoru" v nápovědě.

Vytvoří a vrátí odkaz na objekt ActiveX.

Syntaxe

CreateObject(class [, název_serveru] )

Syntaxe funkce CreateObject obsahuje tyto argumenty:

Argument Popis
třída Povinný argument. Proměnná (String). Název aplikace a třída objektu, který chcete vytvořit.
Název serveru Nepovinný argument. Proměnná (String). Název síťového serveru, kde bude objekt vytvořen. Pokud je parametr název_serveru prázdný řetězec (""), použije se místní počítač.

    

Argument classpoužívá syntaxi appname.objecttype a skládá se z těchto částí:

Část Popis
název aplikace Povinný argument. Proměnná (String). Název aplikace poskytující objekt.
typ objektu Povinný argument. Proměnná (String). Typ nebo třída objektu, který chcete vytvořit.

    

Poznámky

Každá aplikace, která podporuje automatizaci, poskytuje alespoň jeden typ objektu. Například aplikace pro zpracování textu může poskytovat objekt Application , objekt Document a objekt Toolbar .

Pokud chcete vytvořit objekt ActiveX, přiřaďte objekt vrácený funkcí CreateObject proměnné objektu:

Poznámka

Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

' 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 příkladu budeme automatizovat objekt excelové tabulky z databáze Accessu. Tento kód spustí aplikaci vytvářející objekt, v tomto případě tabulku Microsoft Excelu. Jakmile se objekt vytvoří, odkazujete na něj v kódu pomocí objektové proměnné, kterou jste definovali. V následujícím příkladu přistupujete k vlastnostem a metodám nového objektu pomocí proměnné ExcelSheetobject a dalších objektů Excelu, včetně Application objektu a kolekce 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

Deklarace objektové proměnné pomocí As Object klauzule vytvoří proměnnou, která může obsahovat odkaz na libovolný typ objektu. Přístup k objektu prostřednictvím této proměnné je však opožděný; To znamená, že k vazbě dojde při spuštění programu. Chcete-li vytvořit objektovou proměnnou, která má za následek ranou vazbu, to znamená vazbu při kompilaci programu, deklarujte objektovou proměnnou pomocí konkrétního ID třídy. Můžete například deklarovat a vytvářet následující odkazy aplikace 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 prostřednictvím proměnné s časnou vazbou může poskytnout lepší výkon, ale může obsahovat pouze odkaz na třídu určenou v deklaraci.

Můžete předat objekt vrácený funkcí CreateObject funkci, která očekává objekt jako argument. Například následující kód vytvoří a předá odkaz na objekt Excel.Application:

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

Objekt můžete vytvořit ve vzdáleném počítači v síti předáním názvu počítače do argumentu název_serveru v poli CreateObject. Tento název je stejný jako název počítače v názvu sdílené složky: pro sdílenou složku s názvem \\Můj server\Veřejný je název_serveru "Můj server".

Poznámka

Další informace o zviditelnění aplikace ve vzdáleném počítači připojeném k síti naleznete v dokumentaci modelu COM (viz web MSDN (Microsoft Developer Network)). Možná budete muset pro svou aplikaci přidat klíč registru.

Následující kód vrátí číslo verze instance aplikace Excel spuštěné ve vzdáleném počítači s názvem MyServer:

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

Pokud vzdálený server neexistuje nebo není k dispozici, dojde k chybě za běhu.

Poznámka

Funkci CreateObject použijte, pokud neexistuje žádná aktuální instance objektu. Pokud je instance objektu již spuštěna, spustí se nová instance a vytvoří se objekt zadaného typu. Pokud chcete použít aktuální instanci nebo spustit aplikaci a nechat ji načíst soubor, použijte funkci GetObject .

Pokud se objekt zaregistroval jako objekt s jednou instancí, vytvoří se pouze jedna instance objektu bez ohledu na to, kolikrát je CreateObject spuštěn.

Příklad

V tomto příkladu se funkce CreateObject používá k nastavení odkazu (

xlApp

) do Excelu. Pomocí odkazu získá v aplikaci Excel přístup k vlastnosti Visible a pak ji pomocí metody Excel Quit zavře. Nakonec je zveřejněna samotná reference.

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.