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.