Funkce CreateObject

Poznámka : Funkce, metoda, objekt či vlastnost popisovaná v tomto tématu je zakázána, pokud je služba Microsoft Jet Expression Service spuštěna v režimu izolovaného prostoru (sandbox), který zabraňuje vyhodnocení potenciálně nebezpečných výrazů. Další informace o režimu izolovaného prostoru (sandbox) naleznete po vyhledání hesla režim izolovaného prostoru (sandbox) v nápovědě.

Vytvoří a vrátí odkaz na Objekty ADO (ActiveX Data Objects).

Syntaxe

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

Syntaxe funkce CreateObject zahrnuje následující argumenty:

Argument

Popis

třída

Povinný argument. Hodnota typu Variant (String). Název aplikace a třída objektu, který má být vytvořen.

název_serveru

Nepovinný argument. Hodnota typu Variant (String). Název síťového serveru, na kterém bude objekt vytvořen. Pokud je argumentem název_serveru prázdný řetězec („“), bude použit místní počítač.


Syntaxe Argumenttřída je název_aplikace.typ_objektu a její části jsou následující:

Část

Popis

název_aplikace

Povinný argument. Hodnota typu Variant (String). Název aplikace poskytující objekt.

typ_objektu

Povinný argument. Hodnota typu Variant (String). Třída nebo typ objektu, který má být vytvořen.


Poznámky

Každá aplikace, která podporuje automatizaci, poskytuje alespoň jeden typ objektu. Například textový editor může poskytnout objekt Application (Aplikace), objekt Document (Dokument) a objekt Toolbar (Panel nástrojů).

Chcete-li vytvořit objekt ActiveX, přiřaďte objekt vrácený funkcí CreateObject k Objektová proměnná:

Poznámka : Následující příklady uvádějí použití této funkce v modulu jazyka Visual Basic for Applications (VBA). Další informace o práci s jazykem VBA získáte tak, že kliknete na položku Referenční informace pro vývojáře v rozevíracím seznamu vedle pole Hledat a do pole pro hledání zadáte jeden nebo více pojmů.

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

Tento kód spustí aplikaci vytvářející objekt, v tomto případě tabulku aplikace Microsoft Office Excel 2007. Jakmile je objekt vytvořen, můžete na něj v kódu odkazovat pomocí definované objektové proměnné. V následujícím příkladu získáte pomocí objektové proměnné (ExcelSheet) přístup k Vlastnost a Metoda nového objektu a dalších objektů aplikace Excel (včetně objektu Application (Aplikace) a kolekce Cells (Buňky)).

' 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

Při deklaraci objektové proměnné pomocí klauzule As Object je vytvořena proměnná, která může obsahovat odkaz na jakýkoli typ objektu. Přístup k objektu prostřednictvím dané proměnné je však s pozdní vazbou, což znamená, že k vazbě dojde při spuštění programu. Chcete-li vytvořit objektovou proměnnou umožňující časnou (statickou) vazbu, což je vazba, ke které dojde při kompilaci programu, deklarujte objektovou proměnnou pomocí ID konkrétní třídy. Můžete například deklarovat a vytvořit 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é umožňující časnou vazbu může zajistit lepší výkon, ale může obsahovat pouze odkaz na Třída zadanou v Deklarace.

Objekt vrácený funkcí CreateObject můžete předat funkci očekávající objekt jako argument. Následující kód například vytvoří a předá odkaz na objekt Excel.Application:

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

Objekt ve vzdáleném počítači v síti můžete vytvořit předáním názvu počítače do argumentu název_serveru funkce CreateObject. Tento název odpovídá části s názvem počítače v názvu sdílené položky: pro sdílenou položku \\Server\Veřejné je název_serveru Server.

Poznámka :  Další informace o zobrazení aplikace ve vzdáleném počítači v síti naleznete v dokumentaci k modelu COM (viz web Microsoft Developer Network). Je možné, že bude nutné přidat do registru klíč pro danou aplikaci.

Následující kód vrátí číslo verze instance aplikace Excel, která je spuštěna 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í dostupný, dojde k chybě při běhu programu.

Poznámka :  Funkci CreateObject použijte v případě, že neexistuje žádná aktuální instance objektu. Jestliže je určitá instance objektu již spuštěna, je spuštěna nová instance a je vytvořen objekt zadaného typu. Chcete-li použít aktuální instanci nebo spustit aplikaci a umožnit jí načíst soubor, použijte funkci GetObject.

Jestliže se objekt zaregistroval jako objekt s jednou instancí, je vytvořena pouze jedna instance objektu (bez ohledu na to, kolikrát je funkce CreateObject použita).

Příklad

V tomto příkladu je pomocí funkce CreateObject nastaven odkaz (

xlApp

) na aplikaci Excel. Pomocí daného odkazu je získán přístup k vlastnosti .Zobrazit (Visible) aplikace Excel a potom je pomocí metody ZavřítDatabázi (Quit) aplikace Excel tato aplikace ukončena. Nakonec je uvolně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.
Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×