Co je třída ve VBA?
Třída je plán pro objekt, který má být vytvořen. Třída sama nedělá nic, ale pomocí tříd můžete vytvořit více identických objektů, které mohou provádět operace nebo je lze použít jako datový prostředek.
V reálném životě je model (design a funkce) automobilu třídou a samotné auto je předmětem této třídy. Ve třídě definujeme, co má auto v sobě a co dokáže. Například auto má 4 kola, 5 rychlostních stupňů, volant atd. To jsou atributy/vlastnosti. Také definujeme, co může auto dělat, například pohyb vpřed, vzad, zatáčení atd. Toto jsou funkce třídy automobilů. Objekt automobilu vytvořený pomocí třídy auta bude mít všechny tyto vlastnosti. Pokud definujete auto, které má 5 kol, než auto vytvořené pomocí této třídy bude mít 5 kol. Pochopte pointu.
Dost bylo teorie, teď se pojďme podívat, jak můžete ve VBA použít modul třídy.
Použití modulu třídy Excel VBA
Při práci ve VBA jste museli použít rozsah („A1“). Vyberte. Rozsah je předdefinovaná třída ve VBA. Select je jednou z funkcí třídy Range, které vybírají zadaný rozsah. Podobně Debug je třída ve VBA a print and assert jsou jeho metody. Pracovní listy, sešity, rozsah atd. Všechny jsou třídy VBA, které používáme v našich subs.
Vytvořte si vlastní třídu
Nejprve musíme do VBA přidat modul třídy
Stisknutím kombinace kláves ALT+F11 otevřete editor Excelu VBA.
-
- Klikněte pravým tlačítkem na průzkumník projektu. Přesuňte kurzor na modul Vložit-> Třída. Klikněte na to. Totéž lze provést z nabídky Vložit.
-
- Třída bude přidána do složky „Modul třídy“. Výchozí název je jako třída1, třída2 atd. Název třídy můžete změnit v okně vlastností. Pojmenujme naši třídu „Vítejte“.
- Nyní vytvoříme přidání některých atributů do naší třídy. Protože chci, aby tyto atributy byly dostupné veřejnosti, používám operátor přístupnosti veřejnost.
Veřejný název jako řetězec Veřejný var1 jako Integer Veřejný var2 jako Integer
- Nyní přidejme do této třídy funkci. Chci funkci, která říká Ahoj! uživateli. Chcete -li to provést, přidejte dílčí název a pojmenujte ho HiTo.
Sub sayHiTo (uživatel jako řetězec) jméno = uživatel MsgBox ("Ahoj!" & Jméno) Konec Sub
- Nyní použijeme třídu v modulu. Pokud žádný nemáte, vložte nový modul. Napište sub. Pojmenoval jsem svůj dílčí test.
Dílčí test () Dim wc jako nový Welcome 'Deklarovaný a inicializovaný uvítací objekt wc.sayHiTo ("Jack")' použil metodu sayHiTo u Welcome objektu. End Sub
- Spusťte tento dílčí test pomocí klávesy F5. V sešitu aplikace Excel se zobrazí výzva „Ahoj! Jacku“.
Jak to funguje?
V dílčím testu jsme vytvořili objekt "wc" z Vítejte třída. Objekt je ve VBA vytvořen dvěma způsoby. spustíme kód, Test sub vytvoří objekt wc třídy Welcome. Tento objekt má všechny vlastnosti třídy Welcome. K pozdravení uživatele používáme metodu sayHiTo třídy Welcome.
Vytváření objektů v aplikaci Excel VBA
-
- Okamžité vytváření
V Okamžitém vytvoření vytvoříme objekt při deklarování objektu klíčem „nový“. V našem příkladu výše jsme použili okamžité vytváření.
Dim wc jako nový Vítejte
2. Zpožděné vytváření
Při opožděném vytváření nejprve deklarujeme pouze objekt. Nepoužíváme klíčové slovo „nové“. Abychom mohli objekt používat, musíme jej inicializovat klíčovým slovem „nové“.
Dílčí test () Dim wc As Welcome 'wc.sayHiTo ("Jack")' generuje chybu, protože wc ještě není inicializováno 'inicializace objektu Set wc = New Welcome wc.sayHiTo ("Cory")' to bude fungovat. End Sub
Přístup k proměnným třídy
Ve výše uvedených příkladech jsme pro třídu použili veřejné proměnné, ale cvičit je špatně. Měli bychom se vyhnout používání veřejných proměnných ve třídě. Nyní je otázkou, jak bychom přistoupili k proměnným třídy. Dříve jsme pro přístup ke jménu používali podprogram, ale třídy VBA poskytují vlastnosti, které se používají k systematické aktualizaci a načítání hodnot soukromých proměnných třídy. Vlastnosti jsou elegantnější než dílčí nebo funkce pro aktualizaci a přístup k soukromým proměnným. Podívejme se jak.
Syntaxe vlastnosti třídy
Soukromé jméno jako řetězec Soukromý var1 jako celé číslo Soukromé var2 jako celé číslo Vlastnost Let MyName (nm As String) name = nm End Property Získání majetku MyName () jako řetězec MyName = název Koncová vlastnost
Pojďme je použít v modulu.
Dílčí test () 'vytváření objektu třídy Dim wc jako nový Welcome Dim wc1 jako nový Welcome' pomocí vlastností wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
Když spustíte tento testovací dílčí díl, vytisknou se dva názvy pro dva objekty třídy „Vítejte“.
Jak se vlastnosti liší od dílčích a funkcí
Ve výše uvedeném příkladu si všimněte, že jsme jako proměnnou použili vlastnost MyName. Inicializovali jsme hodnotu proměnné „Název“ pouhým zápisem wc.MyName = "assdf". Tento příkazový řádek nazýval vlastnost nazvanouVlastnost Získat MyName () jako řetězec. V závorce jsme nepředali žádnou hodnotu, jako na začátku.
Podobně pro tisk hodnot proměnné "Název" jsme použili příkazDebug.Print wc.MyName. Není to tak jednoduché jako normální inicializace proměnné? Jediným rozdílem je, že v něm můžete udělat hodněvlastnictví segment. Zadáte ověření dat, výpočet, komunikaci atd. A uživatel uvidí pouze výsledek.
Dalším rozdílem je, že můžeme použít stejný název vlastnosti nechat a dostatčást. Díky tomu je to jednodušší a méně matoucí.
Takže ano, lidi, toto byl jednoduchý příklad modulu třídy v aplikaci Excel VBA. To je jen špička ledovce, v tomto tématu je spousta šťávy, kterou prozkoumáme v dalších článcích. Prozkoumáme každého z nich jeden po druhém nejjednodušším možným způsobem. Doufám, že jsem byl dostatečně vysvětlující, abyste to pochopili. Máte -li jakékoli pochybnosti týkající se tohoto tématu nebo jiného tématu Excel VBA, uveďte to v sekci komentáře níže.
Importujte modul ze souboru pomocí VBA v aplikaci Microsoft Excel | Naučte se importovat celý modul z jiného souboru pomocí VBA.
Vytvořte nový modul pomocí VBA v aplikaci Microsoft Excel | Pomocí modulu můžete vytvořit další model ve VBA. To vám může pomoci minimalizovat dodatečné režijní práce.
Přidejte postup do modulu pomocí jazyka VBA v aplikaci Microsoft Excel | Chcete -li přidat procedury do modulů automaticky, použijte tento kód VBA.
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í hodnoty nepotřebujete filtrovat data. 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.