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 sandboxu, což brání vyhodnocení potenciálně nebezpečných výrazů. Další informace o režimu sandboxu najdete v nápovědě pro "režim sandboxu".

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

Syntaxe

CreateObject(třída [; název_serveru] )

Syntaxe funkce CreateObject má tyto argumenty:

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

    

Argument třídypoužívá syntaxi appname.objecttype a má tyto části:

Část Popis
Appname Povinný argument. Varianta (řetězec). Název aplikace poskytující objekt.
Objecttype Povinný argument. Varianta (řetězec). Typ nebo třída objektu, který chcete vytvořit.

    

Poznámky

Každá aplikace, která podporuje automatizaci, poskytuje alespoň jeden typ objektu. Aplikace pro zpracování textu může například poskytnout objekt Aplikace , objekt Dokumentu a objekt panelu nástrojů .

Pokud chcete vytvořit objekt ActiveX, přiřaďte objekt vrácený objektem CreateObject k 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 accessové databáze. Tento kód spustí aplikaci, která vytváří objekt, v tomto případě tabulku Microsoft Excelu. Po vytvoření objektu na něj odkazujete v kódu pomocí proměnné objektu, kterou jste definovali. V následujícím příkladu přistupujete k vlastnostem a metodám nového objektu pomocí proměnné ExcelSheetobjektu a dalších objektů aplikace Excel, včetně objektu ApplicationCells a kolekce.

' 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 proměnné objektu pomocí klauzule As Object 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 vázaný pozdě; to znamená, že vazba nastane při spuštění programu. Chcete-li vytvořit proměnnou objektu, která má za následek počáteční vazbu, tj. vazbu při kompilaci programu, deklarujte proměnnou objektu s konkrétním ID třídy. Můžete například deklarovat a vytvořit následující excelové odkazy:

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 zadanou v deklaraci.

Objekt vrácený funkcí CreateObject můžete předat 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"))

Na vzdáleném počítači v síti můžete vytvořit objekt předáním názvu počítače do argumentu název_serveruCreateObject. Tento název je stejný jako část názvu počítače v názvu sdílené složky: pro sdílenou složku s názvem \\MyServer\Public je název serveru MyServer.

Poznámka

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

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 je nedostupný, dojde k chybě za běhu.

Poznámka

Pokud neexistuje žádná aktuální instance objektu, použijte CreateObject . 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 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 objekt CreateObject proveden.

Příklad

Tento příklad používá funkci CreateObject k nastavení odkazu (

xlApp

) do Excelu. Používá odkaz pro přístup k vlastnosti Visible aplikace Excel a pak pomocí metody Ukončení aplikace Excel ji zavřete. Nakonec se uvolní 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.