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 » co-je-VBA

Co je VBA


Nejde o nadávku, ale objektový programovací jazyk, který je součásti produktů MS Office.

Úvodem aneb co je VBA

VBA neboli Visual Basic for Application. Vychází z VB (Visual Basic), ze kterého je odvozen a upraven pro produkty MS Office. Tj. VBA má stejnou syntaxi (příkazy se píší stejně, takže přechod z VBA na VB a naopak je bezproblémový). Každý z produktu MS office (Word, Excel, PowerPoint, Project, Access, Outlook, atd. má k dispozici VBA). Podobně VBA naleznete některých dalších SW produktů.

Výhodou VBA

Výhodou je, že je již v ceně MS Office (takže je víceméně zadarmo :). Ve VBA můžete pomocí funkcí, cyklu, formulářů, vytvořit velice zdařilé aplikace. Navíc díky obrovské komunitě vývojářů je k dispozici množství hotových aplikací, které mohu být základem pro váš program. Navíc na diskuzních forech většinou najdete odpověď na Váš problém (postačí trochu hledat, strejda google pomůže). Jako další výhodu beru, že jeho naučení je jednoduché a rychlé.

Nevýhodou VBA

Největší nevýhodou VBA je, že nedokáže vytvářet samospustitelné *.exe aplikace (což se dá předpokládat, aby nedošlo k ztrátě prodeje klasického "velkého" Visual Basicu). Tím nechci říci, že by VBA byl nějaký chudý příbuzný velkého bratra VB.

Odemknutí zabezpečeného sešitu není složité je otázkou pár chvil.

Nejde o plnohodnotný Visual Basic.

K čemu je VBA dobrý

Práci přenechte strojům.

Zautomatizovat, zrychlit, zpřesnit a ulehčit Vaší práci. Mnohdy opakujete stále stejné činnosti. Stáhnout data, tyto data upravit, vytvořit z nich graf a tento rozeslat několika lidem (mnohdy práce na celý den, jednou týdně). Jde o stále stejnou činnost, která jde zautomatizovat. Takže posloupnost naprogramujete ve VBA a ten vše provede sám. Každé pondělní ráno si stáhne data, patřičně je upraví, vytvoří z nich graf a rozešle patřičným lide. Takže bez zásahu člověka pracuje na pozadí. Takže pokud nějakou činnost tvoříte opakovaně je vhodné ji zautomatizovat.

Má cenu se učit VBA?

Jednoznačně ANO.

Ušetříte si čas. Například můj největší úspěch je "prográmek", který dokáže provést součty u cca 800 řádku. Kdy tenhle výpočet prováděla dotyčná pracovnice dva dny. A naprogramování aplikace ve VBA, které trvalo necelý den, jej automaticky zvládne do minuty.

Kdy začít s VBA

včera bylo pozdě

Jelikož čtete tyto stránky, jste na dobré cestě. V dalších článcích postupně popisuji od základu přes ukázky jednoduchých kódu, které vycházejí z praxe, takže jejich použití je praktické, ne teoretické jako v některých knihách.

Jak začít se studiem VBA

Sednout k počítači spustit Excel (Access, Project,...) a začít tvořit.

Pokud má člověk alespoň trochu logického myšlení není problém po chvilce začít programovat jednoduché aplikace.

Začít lze zaznamenáváním makra pomocí záznamníku maker (Excel umí). Otevřít si nahrané makro a zjišťovat co který řádek dělá. Když nevím použít vyhledávač google.com Případně pokud není k dispozici internet lze použít i nápovědu k VBA dané aplikace. Pokud máte raději něco tištěného tak je možnost koupit nějakou knihu. Dobré reference jsou na knihy Johna Walkenbacha. Jakmile pochopíte objektový model, zjistíte, že vytvořit aplikaci ve VBA není vůbec složité.

Budoucnost VBA?

Život je změna.

Přejde Microsoft na nějaký jiný jazyk než je VBA? V současné verzi MS Office 2010 je k dispozici. V budoucnosti si troufám říct, že VBA zůstane podporován, ale Microsoft přidá například podporu pro Visual Studio Tool for Office (VSTO), případně podobně jako v OpenOffice budou na výběr i další skriptovací jazyky. Software se čím dál více stěhuje do cloudu, navíc je potřeba podpora dotykových displejů, atd. Takže si troufám říci, že v další verzi MS Office již budou nějaké doplňky nebo podpora dalšího skriptovacího jazyku.

Pokud se ohlédneme velkou revoluční změnu již Microsoft vyzkoušel. Vytvořil pás karet, který nasadil v MS Office 2007.

Až bude k dispozici demoverze nových Office, tento článek doplním.

Závěrem

Z praxe mohu řící, že využití VBA je obrovské. V zaměstnání využívám ke zpracování naměřených dat, automatické tvorbě výstupu, grafů, atd. Těch několik sešitů s VBA zastane prací tak cca 6 osob na plný úvazek (a přitom to funguje úplně samo a nemusí se o to nikdo starat :).

Článek byl aktualizován: 01.11.2014 13:44

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


Míša

Přidáno: 21.11.12 18:21

Ahoj, díky za hezké stránky. Chtěla bych se zeptat, za jak dlouho budu schopná naučit se VBA. Chápu, že se na takovou otázku nelehce odpovídá, ale zajímají mě Vaše názory.

Pavel Lasák

Přidáno: 21.11.12 19:41

To Míša: Díky za pochvalu. První funkční kód lze napsat během pár minut. Pak záleží co člověk od VBA očekává. Za cca 14 dnů - měsíc se dá ve VBA obstojně tvořit VBA kódy. Profesionání znalosti může získat člověk za pár let. Dokonalost asi nikdy (pořád se dá zlepšovat a učit). Postačílo?

Jana

Přidáno: 04.02.13 09:50

Diky za super stranky, vcera mi pomohly vytvorit pomerne slusne makro - i kdyz obcas zlobilo :-) Ale nakonec jsem to zvladla - predevsim diky vasim strankam... Nejvetsi problem bylo kopirovani formatu radku :-( z absolutniho do definovaneho promennou...

Pavel Lasák

Přidáno: 04.02.13 16:04

To Jana: Jsem rád, že stránky plní účel tj. pomáhají. Excel VBA dokáže někdy pěkně potrápit.

Pelišky

Přidáno: 22.11.13 09:47

...Těch několik sešitů s VBA zastane prací tak cca 6 osob na plný úvazek.... ... a potom nebudú mít skláři co zráť.... "Pelišky" :) idem do toho držte mi palce

Pavel Lasák

Přidáno: 22.11.13 17:48

To Pelíšky: Proč se dřít od rána do večera a nenechat prací strojům? Ušetřený čas lze věnovat své rodině, svým koníčkům, vzdělávat se, cestovat, pomáhat, tvořit smysluplné věci. Možnosti na uplatnění je hodně? Takže není potřeba se bát o práci té je hromada a navíc i velice dobře placená.

Protože

Přidáno: 28.04.14 20:58

Protože bys mohl nahradit pokladnu, kuličkovým počítadlem.Nebo tip: V Latinské Americe mají pokladní. Její měsíční plat je cca. 4 USD. Bereš to.

Lukáš

Přidáno: 20.06.14 10:06

Dobrý den, skvělé stránky, moc za ně děkuji! Mám otázku k tomuto článku. Píšete "Takže posloupnost naprogramujete ve VBA a ten vše provede sám. Každé pondělní ráno si stáhne data, patřičně je upraví,..." Jakým způsobem lze zajistit, aby si např. makro vytvořené v Excelu samo stáhlo data z nějakého zdroje? Bohužel se mi tuto informaci nikde nepodařilo najít.

Honza

Přidáno: 16.12.14 19:42

Dobrý den,máme Excel 2007. V této verzi nám, podle mého, nefunguje nápověda pro VBA. Při označení funkce v textu programu VBA, nám nyní při použití nápovědy, se nabídne nápověda po síti - tam při zadání názvu zkoumané fce odpoví "Jejda...". Není možnost zapnutí nebo doinstalace interní-funkční nápovědy jako v dřívějších verzích?

Jarda

Přidáno: 20.03.15 13:30

Dobrý den, nemohu dostat Za else ve větvení prg If více příkazů. Dělám někde chybu. Nemůžete poradit? Děkuji

Michaela

Přidáno: 24.11.15 14:37

Dobrý den, ráda bych se zeptala, pokud ovládám javu, jak moc bude náročné se naučit VBA, respektive je to hodně rozdílné? Děkuji za odpověď.

Milan

Přidáno: 02.01.16 20:38

Dobrý den, prosím Vás, mám vytvořený LIST 1 a LIST 2, kdy oba jsou propojeni. Na listu 1 mám vytvořené nulovací tlačítko, které smaže hodnoty zapsané v prvním sloupci a tato změna se tedy promítne i na listu 2. Jak udělám to, aby si Exel pamatoval zadané hodnoty na listu 2 i po vynulování na listu 1? Abych mohl nově zadané hodnoty z listu 1 přičíst k listu 2? Příklad: List 1 (příjem do skladu), list 2 (sklad). Skladník příjme 5 ks motyk, což se zobrazí ve skladě. Poté přijme novou objednávku (vynuluje příjem) a zadá nové hodnoty 8 ks rýčů a 8 motyk. Na skladě se zobrazí 13 ks motyk a 8 rýčů. ¨ Moc děkuji!

Pavel Lasák

Přidáno: 05.01.16 08:47

To Milan: Nutno vytvořit VBA makro. Budete-li mít zájem, můžete se ozvat na email pavel.lasak@gmail.com

Jirka

Přidáno: 03.03.16 14:12

Dobrý den, máte vážně super stránky díky kterým jsem se z amatéra v excelu dostal na lehce pokročilou úroveň během pár týdnů. Momentálně vytvářim v práci klikačku na zapisování prostojů na 9 linek(na každé se vyrábí něco jiného), investovat se jim do nějaké webové verze (třeba v php) zatim nechce tak jsem dostal za vedlejší úkol vytvořit excel verzi. Celkovou fazónu mám, dělá to i počítá co chci. Potřebuji tedy jenom radu (případně část kódu) jak zkopírovat určitou oblast dat z té "šablony" kde bude soupis dat co chci ukládat a poslat to po kliknutí na makro do jiného souboru(celkového ročního součtu). Zkoušel jsem všechno možný ale jediný co mi fungovalo bylo když byly oba soubory otevřený což je dost neefektivní(ze sešitu do sešitu v druhém souboru)a hlavně musí být cílový soubor zavřený(dělníci nebudou mít přístup aby to nijak nepotento..). Příklad: mám oblast dat (A1:P30) v souboru S:\Plocha\Prostoje[Sešitem je: "Šablona"] a chci to zkopírovat do S:\Plocha\Ročníprostoje [Sešitem je: "DLP2016"] na poslední prázdný řádek aniž bych to musel otevírat. Je tu ta možnost něco kopírovat do souboru který je zavřený ? Děkuji

Pavel

Přidáno: 16.08.16 15:22

Zdravím, uměl by mi někdo poradit jak vytvořit tlačítko na které když kliknu tak my daný list převede do pdf a odešle přes ftp do cílové složky? Jedná se o Excel. Mockrát děkuju :)


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 | 47822

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