Přeskočit navigaci | Přeskočit na novinky

Nový videokurz na Seduo: Excel pro začátečníky

     

Jste zde: Úvodní stránka » excel » vba » vlastnosti-metody-udalosti-kolekce-excel-vba

Vlastnosti, Metody, Události, Kolekce - VBA


Co Vám pomáhá tvořit programy ve VBA, v MS Excelu a nejen Excelu, funguje i v MS Access, MS Word, MS PowerPoint.

Úvodem do programování

Microsoft Excel logo

VBA v Excelu je programování objektově orientováno. Tj. obsahuje určité objekty (buňky, graf, list, sešit, tlačítko) a s těmito "objekty lze něco tvořit, nějak je modifikovat, usměrňovat. K tomu slouží čtyři pomůcky (hlediska):

V následujícím textu si je rozebereme podrobněji. Tyto "hlediska" se pokusím přiblížit na příkladu s osobním automobilem.


Vlastnosti

Jméno, Font, Velikost písma, Hodnota ... Příklad s autem - jeho barva, výkon, výrobce.

Vlastnosti popisuje "charakteristiku" objektu (je měřitelná). Důležitou vlastností objektů je Jméno (Name), které slouží k identifikaci. Své jméno (Name) má sešit, list, tlačítko, zaškrtávací pole, ...). Změníte názvu listu (nemusí být provedeno přímo ve VBA, stačí změnit název listu klasicky, pravým tlačítkem myší), tím se provede změna vlastnosti Name (takže vlastnost Name už nebude List1, ale například MujNazev.

Provedení změny vlastnosti ve VBA. Nejprve musíme definovat objekt a pak vlastnost kterou chceme nastavit a pak její hodnotu. V uvedeném příkladu změníte vlastnost Listu1 (jeho jméno).

Sheets("List1").Name = "MujNazev"

Metody

Akce: Vybrat, Vymazat, Kopírovat, Přepočítat, ... Příklad s autem - nastartovat, zmačknout spojku, zařadit, přidat plyn, ...

Pod metodou si můžeme představit nějakou akci, kterou může objekt provést (vybrat, vymazat, kopírovat). Takže pokud budete chtít přepočítat aktivní list použijeme VBA kód:

Sheets.Calculate

Události

Po otevření, po přepočítaní, před tiskem, ... Příklad s autem - po nastoupení do vozidla, po nastartování, ...

Pokud je nastane požadovaná událost, Excel na ní může reagovat a spustit nějaký kód. Udalosti na které Excel rozpozná. Otevření sešitu, Zavření sešitu, Uložení sešitu, Přepočítání sešitu, Změna dat v buňce, atd.

Například po otevření sešitu chceme spustit dialogový box s textem.

Private Sub Workbook_Open() MsgBox "office.lasakovi.com" End Sub

Podrobněji o událostech jsem se zmínil v článku Události ve VBA MS Excelu - obecný úvod.

Kolekce

Kolekce je soubor objektů obsažen v jiném objektu. Zní to složitě, ale není. Jak už jsem řekl Excel VBA je objektově orientované programování (což přináší obrovské výhody). Takže budete-li chtít provést skupinu příkazu, využijete kolekce.

Představte si potřebu do všech listu na zápatí připsat poznámku o autorovi. Někdo může namítnout, že existují cykly. Ano existuji, ale budeme mít cyklus pro 3 listy, někdo přidá list 4 a již se nám na tento naše autorství nedostane. Programovat kontrolu na počet listu je složitější než použít jiný způsob. Jak již víme list je objekt. Takže to uděláte efektivněji pomocí kolekci, čímž podpisy do zápatí doplníte.

For Each List In Worksheets List.PageSetup.LeftFooter = "office.lasakovi.com" Next List

Případně přejmenovat listy a jméno vzít z buňky A1.

Dim w As Worksheet For Each w In ThisWorkbook.Worksheets w.Name = w.Range("A1").Value Next w

Závěrem

Rozdíly mezi Vlastnosti, Metodou, Události, Kolekci snad jsou z článku pochopitelné, pokud ne existují komentáře.

Článek byl aktualizován: 11.08.2015 18:15

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Mikoláš Sígl

Přidáno: 16.11.16 18:26

Změna hodnoty bunky je událost. Může tato událost spustit makro? ALE POZOR jde mi o situaci, kdy hodnota v bunce nebude měněna stiskem klávesy ale tím, že při výpočtu (externí propojení) dojde ke změně bunky, kde je umístěn vzorec. děkuji

Jojo

Přidáno: 21.11.16 10:15

To Mikoláš Sígl: -- Testovanie zmeny bunky po prepočte by som riešil asi takto: (netestované pre externé prepojenie)Private OldValue Private Sub Worksheet_Activate() OldValue = Range("A1") End Sub Private Sub Worksheet_Calculate() If Range("A1") <> OldValue Then MsgBox "Bunka bola zmenená" OldValue = Range("A1") End Sub -- Iná možnosť je zapamätať si pôvodnú(východziu) hodnotu pri otváraní súboru


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2016 | 16807

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.