Tento článek vám ukáže, jak používat metodu Create Object ve VBA.
VBA je objektově orientovaný jazyk - používá postupy k ovládání a vytváření objektů.
Vytvořit objekt
K vytvoření objektu v aplikaci Microsoft Office můžeme použít metodu Create Object. Pokud například píšeme kód VBA v Excelu a přejeme si otevřít kopii Wordu, můžeme k vytvoření nové instance Wordu použít metodu Create Object.
Například:
12345 | Sub CreateWordInstance ()Dim wdApp jako objektNastavit wdApp = CreateObject ("Word.Application")wdApp.Visible = TrueEnd Sub |
Podobně můžeme vytvořit novou instanci aplikace PowerPoint nebo Access.
12345 | Dílčí CreatePowerPointApplicationDim ppApp jako objektNastavit ppApp = CreateObject ("PowerPoint.Application")ppApp.Visible = TrueEnd Sub |
Můžeme také použít Create Object k vytváření jiných objektů než Application Application. Můžeme jej použít například k vytvoření listu aplikace Excel.
1234567 | Dílčí CreateExcelSheet ()Dim xlSheet jako objektNastavit xlSheet = CreateObject ("Excel.Sheet")xlSheet.Application.Visible = TruexlSheet.Application.Range ("A2") = "Dobré ráno"Nastavit xlSheet = NicEnd Sub |
To však ve skutečnosti vytvoří novou instanci aplikace Excel - nevytvoří list v instanci, která je již otevřená. Z tohoto důvodu musíme nastavit Aplikaci nového listu (tj.: Novou instanci Excelu) na Visible, aby byl objekt vidět.
Ve všech výše uvedených příkladech používáme pozdní vazbu - proto deklarujeme proměnné jako objekty. Můžeme také použít Early Binding tak, že v našem projektu VBA nastavíme odkaz na Word nebo PowerPoint a poté napíšeme dílčí postup, jak je uvedeno níže. Chcete -li se dozvědět více o vazbě Late and Early, klikněte sem.
Nejprve pro Early Binding, v rámci VBE, nastavíme odkaz na Microsoft Word.
V Jídelní lístek lišta, vyberte Nástroje> Reference a přejděte dolů a najděte odkaz na soubor Objektová knihovna Microsoft Word 16.0.
Ujistěte se, že je zaškrtnuta reference, a poté klikněte OK.
POZNÁMKA: Verze nemusí být 16.0, vše závisí na tom, jakou verzi sady Microsoft Office používáte na počítači!
Nyní deklarujeme Objekt pomocí Early Binding - to znamená, že místo deklarování wdApp jako Object deklarujeme jej jako Aplikace Word. Zbytek kódu je stejný, jako když jsme použili Pozdní vazbu výše.
12345 | Sub CreateWordInstance ()Dim wdApp jako nové slovo. AplikaceNastavit wdApp = CreateObject ("Word.Application")wdApp.Visible = TrueEnd Sub |