Visual Basic for Applications
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 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 uložených v Excelu.
VBA je k dispozici ve většině 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 spolupracovat s jinou aplikací, i přes to, že aplikace také hostuje prostředí pro běh Visual Basic for Application, protože rozhraní pro OLE Automation 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 stisknutí tlačítka 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 explicitně dovolil spuštění.
Reference
V tomto článku byl použit překlad textu z článku Visual Basic for Applications na anglické Wikipedii.