Čo je VBA? Jazyk makra programu Excel

Ak ste niekedy používali makrá v programe Excel, použili ste Visual Basic for Applications (VBA). VBA je programovací kód, ktorý je čitateľný pre ľudí (a je možné ho upravovať), ktorý sa generuje pri zázname makra. Keď spustíte makro, Excel tento kód prečíta a zopakuje vaše akcie.

Nasleduje séria často kladených otázok o VBA s odpoveďami pre nováčikov v makrách Excelu aj skúsených programátorov.

Na čo sa VBA používa v programe Excel?

VBA sa používa na písanie makier, ktoré automatizujú jednoduché a zložité úlohy v programe Excel.

Používatelia programu Microsoft Excel sa často ocitnú v tom, že budú opakovať rovnakú sériu úloh znova a znova. Niekedy ide o drobné úlohy, ako je kopírovanie podmnožín údajov do rôznych hárkov, a niekedy sú úlohy zložitejšie, ako napríklad nahrávanie údajov na webovú stránku. Pomocou VBA je možné makrá naprogramovať na automatizáciu úloh, ako sú tieto, a zmeniť sériu manuálnych operácií na jedno kliknutie na tlačidlo.

Ako začať s VBA v programe Excel?

Najjednoduchší spôsob, ako začať s makrami, je zaznamenať ich pomocou programu Makro Recorder zabudovaného v programe Excel. Makro rekordér generuje kód VBA, ktorý môžete čítať a upravovať, čo je odrazovým mostíkom k naučeniu sa kódovať vlastné makrá od začiatku.

Ďalšie informácie nájdete v článku „Ako zaznamenať makro“.

Ako môžem získať prístup k kódu VBA?

Editor VBA je možné kedykoľvek otvoriť stlačením klávesu ALT+F11 klávesová skratka. Odtiaľto máte prístup ku kódu pre všetky otvorené zošity.

Môžete dvakrát kliknúť na ľubovoľný zošit, hárok alebo objekt modulu v priečinku Projekt okno na zobrazenie kódu VBA, ktorý je v ňom obsiahnutý. Zaznamenané makrá sa vždy objavia v moduloch, kde budete zvyčajne chcieť napísať aj svoje vlastné makrá.

Ďalšie informácie o úprave makier nájdete v článku „Úprava makier programu Excel VBA“.

Čo môže VBA robiť?

Po prvé: Ak je niečo, čo môžete urobiť v programe Excel, môžete napísať kód VBA a urobiť to isté. Ak sa naučíte príkazy (pomocou záznamníka makier alebo online zdrojov), môžete v jednom makre spojiť niekoľko akcií dohromady.

Za druhé: VBA môžete použiť na písanie funkcií definovaných používateľom na použitie vo vzorcoch hárka - podobne ako napríklad funkcia „= SUM ()“. Aj keď Excel už obsahuje veľké množstvo funkcií, ak zistíte, že chcete funkciu, ktorá je špecifickejšia pre vaše odvetvie alebo pracovisko, môžete ju pridať pomocou jazyka VBA.

Tretí: pomocou VBA môžete do svojich makier pridať logiku (príkazy If) a slučky (akcie opakovania). To znamená, že makro môže byť viac než len záznam akcií - môže to byť skutočný program s inteligentným opakovaním a rozhodovaním.

Po štvrté: VBA vám umožňuje vytvárať používateľské rozhrania, čo používateľom poskytuje jednoduchší spôsob interakcie s vašimi makrami. Tieto rozhrania môžu byť jednoduché tlačidlá na pracovnom hárku alebo zložité UserForms s bohatými ovládacími prvkami, ako sú TreeViews a FlexGrids.

(Východiskový bod nájdete v článku „Pridať tlačidlo a priradiť makro v programe Excel“.)

Po piate, ale nie nakoniec: VBA vám umožňuje využiť takmer všetky zdroje vo vašom počítači alebo na internete pomocou externých knižníc DLL. Týmto spôsobom môžete automatizovať oveľa viac ako Excel, napríklad prístup k webovým službám a databázam, analýzu súborov XML, spoluprácu s inými aplikáciami balíka Microsoft Office a oveľa, oveľa viac.

Sú VB a VBA rovnaké?

Jazyk VBA je identický s jazykom Visual Basic 6.0. Ak máte skúsenosti s písaním kódu VB6, môžete písať VBA.

Editor VB v programe Excel je stiahnutá verzia editora VB6 s podobnými schopnosťami ladenia a komponentmi, ako sú okná „Projekt“ a „Vlastnosti“. Formulárový editor je tiež veľmi podobný, aj keď má určité obmedzenia (napríklad neschopnosť vytvárať riadiace polia).

Menej podobný jazyku VBA je Visual Basic .NET. Aj keď tieto jazyky zdieľajú mnoho rovnakých kľúčových slov a syntaxí, kód medzi týmito jazykmi je menej interoperabilný. Na prenos postupu z VB6 do VBA by ste nemuseli veľa písať (ak niečo), ale to isté nemôžete urobiť z VB.NET.

Aký je rozdiel medzi makrom a VBA?

VBA je iba jazyk, v ktorom sa píšu makrá. Ak je vaše makro príbehom, VBA je gramatika a slovník, pomocou ktorého je napísaný.

Aký je rozdiel medzi makrom a skriptom?

Skripty používajú obmedzenú podmnožinu jazyka Visual Basic a používajú sa na rôzne účely.

Makrá sú uložené v súboroch zošita programu Excel a je ich možné spustiť iba z vnútra programu Excel. Obvykle sa používajú na automatizáciu rôznych funkcií programu Excel a pridanie ďalších funkcií do zošitov.

Skripty sú uložené v textových súboroch pomocou prípony .VBS a je možné ich spustiť z operačného systému Windows alebo ich spustiť iné programy. Sysadmins bude používať skripty na automatizáciu určitých administratívnych úloh v počítači alebo sieti.

Čo robí vývojár VBA?

Ľudia, ktorí vytvárajú makrá, často nie sú vývojári - sú to analytici, obchodníci, účtovníci alebo vedci, ktorí absolvovali školenie v oblasti programovania a používajú VBA viac ad hoc.

Ľudia, ktorí sa zameriavajú na vývoj VBA, majú tendenciu vytvárať prepracovanejšie nástroje - vytvárajú doplnky, používateľské rozhrania s formulármi, interaktívne panely, generátory zostáv a ďalšie.

Prečo je VBA dôležitá?

VBA je štandardne súčasťou všetkých aplikácií balíka Microsoft Office vrátane Excelu. Excel je jedným z najpopulárnejších programov na svete a nachádza uplatnenie v najrozmanitejších odboroch a na všetkých pracoviskách, pričom všetky majú svoje jedinečné pracovné postupy a prípady použitia.

Tým, že nepoužívame automatizáciu, každý týždeň premrhá nespočetné množstvo pracovných hodín vykonávaním nudných, opakujúcich sa úloh ľudskou rýchlosťou. Automatizácia s VBA dokáže vykonávať tie isté úlohy bleskovým tempom počítača, vďaka čomu sa používatelia môžu sústrediť na dôležité aspekty svojej práce, byť produktívnejší - a možno aj vyjsť z kancelárie o niečo skôr!

Je VBA dobrý programovací jazyk?

VBA má typické programovacie prvky, ako sú premenné, polia, funkcie, rozhodnutia a slučky. Má ľahko čitateľnú syntax a môže využiť veľa energie zo systému Windows a ďalších služieb.

Na druhej strane, spracovanie chýb nie je vo VBA príliš elegantné. Zatiaľ čo iné jazyky používajú bloky kódu „try-catch-konečne“, VBA pomocou príkazov „Pri chybe“ upravuje správanie makier v prípade chyby.

VBA navyše nemožno použiť na vytváranie samostatných programov, webových stránok alebo služieb a nemôže byť v rozhraní s novšími programovacími rozhraniami API, ako je platforma .NET.

Je VBA objektovo orientovaná?

VBA má obmedzenú podporu pre niektoré objektovo orientované koncepty:

  • Zapuzdrenie: VBA podporuje skrývanie údajov pomocou tried
  • Polymorfizmus: Kľúčové slovo Implements umožňuje programátorom používať ako rozhrania iné triedy

V pravom zmysle slova však VBA nie je objektovo orientovaná. Predovšetkým mu chýba koncept dedičnosti, ktorý výrazne obmedzuje schopnosť rozšíriť funkčnosť existujúcich typov.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave