Visual Basic for Applications je objektově orientovaný programovací jazyk. Základní koncept objektově orientovaného programování spočívá v tom, že softwarová aplikace (v tomto případě Excel) se skládá z různých jednotlivých objektů, z nichž každý má svou vlastní sadu funkcí a použití.
Aplikace Excel obsahuje buňky, listy, grafy, kontingenční tabulky, kreslení tvarů — seznam objektů Excelu je zdánlivě nekonečný. Každý objekt má svou vlastní sadu funkcí, které se nazývají vlastnosti , a vlastní sadu použití, nazývanou metody .
Tento koncept si můžete představit stejně jako předměty, se kterými se denně setkáváte, jako je váš počítač, auto nebo lednička. Každý z těchto objektů má identifikační vlastnosti, jako je výška, váha a barva. Každý z nich má své vlastní odlišné použití, jako je práce s Excelem, přeprava na dlouhé vzdálenosti nebo uchovávání potravin podléhajících zkáze v chladu.
Objekty VBA mají také identifikovatelné vlastnosti a způsoby použití. Buňka listu je objekt a mezi jeho popsatelné vlastnosti (jeho vlastnosti) patří jeho adresa, výška a formátovaná barva výplně. Sešit je také objekt VBA a mezi jeho použitelné funkce (jeho metody) patří jeho možnosti otevřít, zavřít a přidat do něj graf nebo kontingenční tabulku.
V Excelu se denně zabýváte sešity, listy a rozsahy. Pravděpodobně považujete každý z těchto objektů za součást Excelu, aniž byste je ve skutečnosti oddělovali. Excel však o nich interně uvažuje jako o všech součástech hierarchického modelu nazývaného objektový model aplikace Excel. Objektový model Excelu je jasně definovaný soubor objektů, které jsou strukturovány podle vztahů mezi nimi.
Porozumění předmětům
Ve skutečném světě můžete vše, co vidíte, popsat jako objekt. Když se podíváte na svůj dům, je to předmět. Váš dům má pokoje; tyto místnosti jsou také samostatné objekty. Tyto pokoje mohou mít skříně. Tyto skříně jsou také předměty. Když přemýšlíte o svém domě, pokojích a skříních, můžete mezi nimi vidět hierarchický vztah. Excel funguje stejným způsobem.
V Excelu je objekt Application všeobjímající objekt – podobný vašemu domu. Uvnitř objektu Application má Excel sešit. Uvnitř sešitu je pracovní list. Uvnitř je to rozsah. To vše jsou objekty, které žijí v hierarchické struktuře.
Chcete-li ukázat na konkrétní objekt ve VBA, můžete procházet objektovým modelem. Chcete-li se například dostat do buňky A1 na listu 1, můžete zadat tento kód:
Activeworkbook.Sheets("List1").Rozsah("A1").Vybrat
Ve většině případů je hierarchie objektového modelu chápána, takže nemusíte zadávat každou úroveň. Zadáním tohoto kódu se také dostanete do buňky A1, protože Excel z toho vyvozuje, že máte na mysli aktivní sešit a aktivní list:
Rozsah("A1").Vyberte
Pokud již máte kurzor v buňce A1, můžete jednoduše použít objekt ActiveCell, čímž se vyhnete nutnosti hláskovat rozsah:
Aktivní buňka.Vybrat
Porozumění sbírkám
Mnoho objektů aplikace Excel patří do kolekcí , což jsou v podstatě skupiny podobných objektů. Podobně se váš dům nachází v sousedství, což je soubor domů. Každá čtvrť leží ve sbírce čtvrtí nazývaných město. Excel považuje kolekce za samotné objekty.
V každém objektu Workbook máte kolekci listů. Kolekce Worksheets je objekt, který můžete vyvolat prostřednictvím VBA. Každý list v sešitu je součástí kolekce Listy.
Pokud chcete odkazovat na list v kolekci Worksheets, můžete se na něj odkazovat podle jeho pozice v kolekci, jako indexové číslo začínající 1, nebo podle jeho názvu jako citovaného textu. Pokud spustíte následující dva řádky kódu v sešitu, který má pouze jeden list s názvem MySheet, oba provedou totéž:
Pracovní listy(1).Vyberte
Worksheets("MySheet").Vyberte
Pokud máte v aktivním sešitu dva listy s názvy MySheet a YourSheet, v tomto pořadí můžete odkazovat na druhý list zadáním některého z těchto příkazů:
Pracovní listy(2).Vyberte
Worksheets("YourSheet").Vyberte
Pokud chcete odkazovat na list v sešitu s názvem MySheet v konkrétním sešitu, který není aktivní, musíte kvalifikovat odkaz na list a odkaz na sešit následovně:
Workbooks("MyData.xls").Worksheets("MySheet").Vyberte
Pochopení vlastností
Vlastnosti jsou v podstatě vlastnosti objektu. Váš dům má barvu, plochu, stáří a tak dále. Některé vlastnosti, například barvu vašeho domu, lze změnit. Jiné vlastnosti, například rok, kdy byl váš dům postaven, nelze změnit.
Podobně objekt v aplikaci Excel, jako je objekt Worksheet, má vlastnost název listu, kterou lze změnit, a vlastnost řádku Rows.Count, kterou nelze změnit.
Na vlastnost objektu odkazujete odkazem na objekt a poté na vlastnost. Můžete například změnit název listu změnou jeho vlastnosti Name.
V tomto příkladu přejmenujete List1 na MySheet:
Sheets("Sheet1").Name = "MySheet"
Některé vlastnosti jsou pouze pro čtení, což znamená, že jim nelze přímo přiřadit hodnotu. Příkladem vlastnosti pouze pro čtení je vlastnost Text buňky, která poskytuje formátovaný vzhled hodnoty v buňce. Nelze jej přepsat ani změnit.
Pochopení metod
Metody jsou akce, které lze provést proti objektu. Pomáhá uvažovat o metodách jako o slovesech. Můžete si například vymalovat svůj dům; ve VBA, to by se mohlo přeložit do
dům.barva
Jednoduchým příkladem metody Excelu je metoda Select objektu Range:
Rozsah("A1").Vyberte
Další je metoda Copy objektu Range:
Rozsah("A1").Kopírovat
Některé metody mají parametry, které mohou určovat, jak se metody použijí. Například metodu Vložit lze efektivněji použít explicitním definováním parametru Destination:
ActiveSheet.Paste Destination:=Range("B1")