Jak název napovídá, funkce CreateObject slouží k vytváření objektů.
Proč ale používáme metodu nebo funkci CreateObject, když můžeme přímo vytvořit objekt pomocí nového klíčového slova?
To je platná otázka a máme vhodnou odpověď.
Volá se vytvoření objektu pomocí CreateObject Pozdní vazba. V pozdní vazbě se vytváření objektů děje za běhu. Není nutné přidávat žádné odkazy. Díky tomu je kód VBA přenosný.
Pokud například vytvoříte aplikaci, která se zabývá jinými aplikacemi, a používáte časná vazba přidáním odkazů a použitím Nový klíčové slovo. Později tento kód přenesete na jiný počítač, poté budete muset přidat odkazy také na tento počítač. Pokud jste ale použili metodu CreateObject k vytváření dalších aplikačních objektů, nebudete muset přidávat odkazy na jiné počítače v případě, že kód přenesete nebo sdílíte.
V tomto článku se seznámíme s metodou CreateObject pomocí několika příkladů.
Syntaxe funkce CreateObject:
Nastavit název_objektu = CreateObject (název třídy jako řetězec, [název serveru]) |
název třídy jako řetězec: Je to povinná proměnná. Jedná se o řetězec, který odkazuje na název aplikace a typ objektu. Název aplikace a třída objektu, který má být vytvořen, by měl být deklarován v AppName.ObjecType. Pokud například chci objekt aplikace Word, napíšu „Word.Application“. Podrobně to uvidíme v příkladech později.
[název serveru]: Je to volitelná proměnná. Jedná se o řetězec názvu 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č. V této kapitole to nebudeme používat.
Nyní, když známe základy funkce CreateObject, použijme je v několika příkladech:
Příklad 1: Otevřete aplikaci Microsoft Word pomocí aplikace Excel VBA
Pokud bychom tedy chtěli použít časnou vazbu, přidali bychom odkazy na aplikace Word pomocí nabídky Nástroje-> Reference.
A náš kód by vypadal takto.
Sub OpenWordApp () Dim wordApp jako nové Word.Application Dim wordDoc jako dokument wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Výhodou tohoto kódu je, že získáte podporu inteligence VBA a ukáže vám dostupnou metodu a vlastnosti objektu, který jste vytvořili. Funguje perfektně ve vašem systému. Pokud ale tento kód sdílíte s někým jiným a oni nepřidali odkaz na knihovnu slov Microsoft z nástrojů, zobrazí se chyba.
Chcete -li se této chybě vyhnout, použijte níže uvedený kód.
Sub OpenWordApp () Dim wordApp As Object Set wordApp = CreateObject ("Word.Application") Dim wordDoc As Object wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
Výše uvedený kód bude fungovat perfektně na jakémkoli počítači. Je přenosný, protože pro vytvoření objektu provádíme pozdní vazbu pomocí metody CreateObject.
Podívejme se na další příklad:
Příklad 2: Vytvořte objekt sešitu pomocí funkce CreateObject
Pokud s VBA pracujete po libovolnou dobu, musíte mít sešity vytvořené nebo přidané pomocí nového klíčového slova. V tomto případě to uděláme pomocí CreateObject.
Sub addSheet () „Deklarujte proměnnou objektu, aby obsahovala objekt“. Dim as Object způsobí pozdní vazbu. Dim ExcelSheet as Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Make Excel visible through the Application object. ExcelSheet.Application.Visible = True 'Umístěte nějaký text do první buňky listu. ExcelSheet.Application.Cells (1, 1) .Value = "Toto je sloupec A, řádek 1" 'Uložte list do adresáře C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Zavřete Excel metodou Quit na objektu Application. ExcelSheet.Application.Quit 'Uvolněte proměnnou objektu. Nastavit ExcelSheet = Nothing End Sub
Takže jo, lidi, takto používáte metodu CreateObject ve VBA. Pojďme diskutovat o jeho výhodách a nedostatcích.
Výhody CreateObject pro vytvoření objektu
Hlavní výhodou CreateObject je, že dělá váš kód přenosným (když jde o vytváření objektů). Kód můžete sdílet s kýmkoli, aniž byste se museli starat o to, zda přidal odkaz na objektový program pomocí nebo ne.
Nedostatek CreateObject
Nedostatky metody CreateObject jsou:
Musíte znát strukturu třídy, kterou budete používat pro vytváření objektů.
Jakmile vytvoříte objekt, jste zcela závislí na paměti, pokud jde o metody a vlastnosti objektů, protože VBA neposkytuje žádné intellisense, které by vám pomohly.
Výše uvedené nedostatky můžeme překonat. Mám trik.
Kdykoli píšu kód, který bude sdílen s ostatními, používám první metodu pro vytváření objektů (Přidávání odkazů z nástrojů). To mi pomáhá psát kód rychleji. Jakmile dokončím program VBA a vyzkouším ho, nahradím novou metodu metodou CreateObject. Díky tomu je kód přenosný. Můžete použít tento trik.
Takže jo, lidi, takto můžete použít funkci CreateObject k vytváření objektů ve VBA. Doufám, že se mi podařilo vše vysvětlit. Máte -li jakékoli dotazy týkající se tohoto článku nebo jakékoli jiné otázky související s VBA, zeptejte se mě v sekci komentáře níže.
Začínáme s UserForms aplikace Excel VBA| Vysvětlím, jak vytvořit formulář v Excelu, jak používat sadu nástrojů VBA, jak zacházet s uživatelskými vstupy a nakonec jak ukládat uživatelské vstupy. Tato témata si projdeme pomocí jednoho příkladu a průvodce krok za krokem.
Proměnné VBA v Excelu| VBA znamená Visual Basic for Applications. Jedná se o programovací jazyk od společnosti Microsoft. Používá se s aplikacemi Microsoft Office, jako jsou MSExcel, MS-Word a MS-Access, zatímco proměnné VBA jsou specifická klíčová slova.
Proměnný rozsah Excel VBA| Ve všech programovacích jazycích máme specifikátory přístupu k proměnným, které definují, odkud lze k definované proměnné přistupovat. Excel VBA není výjimkou. VBA má také specifikátory rozsahu.
Argumenty ByRef a ByVal | Když je argument předán jako ByRef argument jinému sub nebo funkci, je odeslán odkaz na skutečnou proměnnou. Jakékoli změny provedené v kopii proměnné se projeví v původním argumentu.
Odstraňte listy bez výzev k potvrzení pomocí VBA v aplikaci Microsoft Excel | Protože odstraňujete listy pomocí VBA, víte, co děláte. Chtěli byste říct Excelu, aby toto varování nezobrazoval a ten zatracený list smazal.
Přidat a uložit nový sešit pomocí jazyka VBA v aplikaci Microsoft Excel 2016| V tomto kódu jsme nejprve vytvořili odkaz na objekt sešitu. A pak jsme to inicializovali novým objektem sešitu. Výhodou tohoto přístupu je, že na tomto novém sešitu můžete snadno provádět operace. Stejně jako ukládání, zavírání, mazání atd
Zobrazit zprávu na stavovém řádku aplikace Excel VBA| Stavový řádek v Excelu lze použít jako monitor kódu. Když je váš kód VBA dlouhý a provádíte několik úkolů pomocí VBA, často deaktivujete aktualizaci obrazovky, abyste neviděli, že tato obrazovka bliká.
Vypněte varovné zprávy pomocí VBA v aplikaci Microsoft Excel 2016| Tento kód nejenže zakáže výstrahy VBA, ale také zvyšuje časovou účinnost kódu. Uvidíme jak.
Oblíbené články:
50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.
Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.
COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétních hodnot nemusíte data filtrovat. Funkce Countif je nezbytná pro přípravu řídicího panelu.
Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.