Přeskočit na obsah

Visual Basic for Applications

Z Wikipedie, otevřené encyklopedie

Visual Basic for Applications (neboli VBA) je programovací jazyk od Microsoftu (používaný v jeho balíčku Microsoft Office). VBA dovoluje vytváření uživatelsky definovaných funkcí, automatizaci procesů, přístup k Windows API a ostatní nízkoúrovňové funkce prostřednictvím dynamicky linkovaných knihoven (DDL). VBA zároveň rozšiřuje možnosti dřívějších programovacích jazyků, které ovšem byly specifické pro různé aplikace, například Word měl WordBasic. VBA může být použito pro kontrolu mnoho aspektů hostující aplikace, včetně manipulace s funkcemi uživatelského rozhraní, například menu, nebo také dovoluje pracovat s vlastními uživatelskými formuláři nebo dialogy.

Jak již název napovídá, VBA je velmi úzce příbuzné s Visual Basic a používá jeho Visual Basic Runtime Library, ale dokáže normálně běžet pouze s hostující aplikací, nikoliv jako samostatný program. Může být použito pro ovládání jedné aplikace z jiné prostřednictvím OLE Automation. Například může být použito pro automatické generování reportu ve Wordu z dat v Excelu.

VBA je vloženo do většiny aplikací v sadě Microsoft Office, včetně verzí pro Mac OS X (od verze 2008) a ostatních aplikací od Microsoftu (například Microsoft MapPoint nebo Microsoft Visio).

Návrh

Kód napsán ve VBA je přeložen [1] do proprietárního prováděcího kódu, který se jmenuje Microsoft P-code (z anglického packed code, což znamená zabalený kód). Tento kód hostující aplikace (například Microsoft Access, Microsoft Excel, Microsoft Word, Microsoft Outlook nebo Microsoft PowerPoint ukládá) jako samostatný stream v samotném dokumentu (například .docx soubor nebo .xlsx soubor). Kód je poté spuštěn ve virtuálním stroji[1], který hostuje hostující aplikace.

Automatizace

Aplikace psané ve VBA, které jsou napsány tak, aby používaly OLE automation nemohou použít jinou aplikaci, i přes to, že aplikace také hostuje prostředí pro běh Visual Basic for Application, protože rozhraní pro OLE Automatizaci bude odlišné. Například aplikace napsané pro automatizaci Microsoft Wordu nemohou automatizovat jiný textový procesor, i přes to, že hostuje prostředí pro běh VBA.

Může být automatizováno více aplikací z jednoho hosta prostřednictvím vytváření objektů Aplikací v kódu VBA. VBA kód psaný ve Microsoft Access může vytvořit spojení s Excelem, formátovat text, spojit e-maily z Outlooku.

VBA programy mohou být navázány na tlačítko v menu, na makro, na klávesovou zkratku nebo na OLE/COM událost, například otevření dokumentu v aplikaci nebo jeho zavření.

Bezpečnost

Stejně jako ostatní běžné programovací jazyky, i makra napsané ve VBA mohou být vytvořena se zlým úmyslem. Když používáme VBA, většina z bezpečnostních funkcích jsou v rukou uživatele, nikoliv autora makra. Koncový uživatel se může chránit tím, že deaktivuje všechna makra, kromě těch, kterým to explicitně dovolil.

Reference

V tomto článku byl použit překlad textu z článku Visual Basic for Applications na anglické Wikipedii.