Tento tutoriál vás naučí definovat objektové proměnné pomocí příkazu Set ve VBA.
Definování proměnných objektu
Objekty jsou základním kamenem Microsoft Office - bez objektů nemůžeme ničeho dosáhnout. V aplikaci Excel zahrnují objekty sešit, sešit nebo objekty rozsahu. V aplikaci Microsoft Word jsou příklady objekt Dokument nebo Tabulka. Každý objekt má různé Vlastnosti a Metody které lze naprogramovat tak, aby řídilo chování daného objektu.
Deklarace proměnné objektu
Než budeme moci odkazovat na objekt v kódu, a tedy ovládat objekt, musíme objekt deklarovat. Můžeme to udělat pomocí příkazu Dim.
123456 | Dim wkb jako sešitDim wks as WorksheetDim Rng jako rozsahDim wdDoc jako dokumentDim wdTbl jako tabulkuDim shp jako Shape |
Tento Ztlumit deklarace může nastat uvnitř procedury:
nebo mimo proceduru na úrovni modulu:
Pokud je proměnná deklarována na úrovni modulu (mimo proceduru), lze proměnnou použít v celém modulu.
Pokud je proměnná objektu deklarována příkazem Public, lze proměnnou použít v celém projektu VBA:
Nastavit hodnotu
Jakmile objekt deklarujete, musíte mu přiřadit hodnotu. To je třeba provést pomocí Nastavit prohlášení a lze provést pouze v rámci a Postup.
12345 | Sub SetObjects ()Nastavit wkb = ActiveWorkbookNastavit wks = Sheet1Nastavit rng = rozsah ("A1: G4")End Sub |
Poznámka: Toto se liší od přiřazování hodnot neobjektovým proměnným. K přiřazení objektu k proměnné MUSÍTE použít příkaz Set. Pokud tak neučiníte, zobrazí se chyba:
Jakmile k objektu přiřadíte hodnotu, můžete pak psát kód pro ovládání chování nebo manipulaci s objektem.
Programování VBA | Generátor kódu pracuje pro vás!
Objektové příklady v Excelu
Objekt sešitu
Jakmile deklarujete proměnnou sešitu, můžete k tomuto objektu přiřadit sešit a manipulovat s tímto objektem pomocí dostupných vlastností a metod. V níže uvedeném příkladu uložíme sešit.
123456789101112 | Dílčí sešitObjekt ()'deklarujte objekt sešitu.'Dim wkb jako sešit'přiřadit objektu neuložený sešitNastavit wkb = sešity ("Kniha1")'uložit sešitwkb.SaveAs "C: \ data \ testbook.xlsx"zavřít sešitwkb.close„Nezapomeňte předmět uvolnitNastavit wkb = nicEnd Sub |
Objekt listu
Podobně můžete manipulovat s listem nebo sešity, jakmile list deklarujete jako proměnnou. V níže uvedeném příkladu přejmenujeme List1 a List2.
12345678910111213 | Dílčí listObjekt ()Dim wks1 jako pracovní listDim wks2 jako pracovní list'inicializujte objektyNastavit wks1 = list1Nastavit wks2 = Sheet2“přejmenujte listywks1.Name = "Zákazníci"wks2.Name = "Produkty"“nastavil objekty na nicwks1 = Nicwks2 = NicEnd Sub |
Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!
Objekt rozsahu
Objekt Range je jedním z nejužitečnějších objektů pro manipulaci v Excelu. V níže uvedeném příkladu vyznačíme tučně rozsah A1 až E1 a naformátujeme jej dolním okrajem.
12345678910111213 | Sub RangeObject ()Dim rng1 As Range„zintenzivněte rozsahNastavit rng = rozsah ("A1: E1")'zvýrazněte rozsah a nastavte spodní hranicirng.Font.Bold = TrueS rng1.Borders (xlEdgeBottom).LineStyle = xlSpojité.ColorIndex = 0.TintAndShade = 0.Hmotnost = xlThinKonec sEnd Sub |
Objekt tvaru
K práci s tvary můžete také použít objektové proměnné.
123456789101112 | Sub AddShape ()Dim shp As Shape„vytvořte tvarNastavit shp = ActiveDocument.Shapes.AddShape (msoShapeSmileyFace, 68,25, 225,75, 136,5, 96#)S shp'změnit vnitřní barvu a styl.Fill.ForeColor.RGB = RGB (255, 255, 0).Fill.Solid„Uprav úsměv!.Úpravy položky (1) = 0,07181Konec sEnd Sub |