Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba » co-je-VBA

Co je VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

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: 19.09.2020 11:06

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 - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


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 :)






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


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