Registrovaný: 06 Jan 2012, 19:26 Príspevky: 458 Bydlisko: pod Pátrovom Udelené body:228 bodov Získané body:21 bodov
Čo je to VBA (Visual Basic for Applications) – na čo slúži?
VBA je skratka pre Visual Basic for Applications, ide o programovací jazyk, ktorý vyvinula firma Microsoft. Excel, ako aj iné aplikácie (Word, Access, PowerPoint…) z balíka Microsoft Office v sebe tento programovací jazyk obsahujú. To znamená, že nie je nutné si ho dokúpiť alebo doinštalovať.
Stručne povedané, VBA je nástroj, ktorý ľudia využívajú na naprogramovanie programov, algoritmov v Exceli na uľahčenie (automatizáciu) svojej práce.
Čo všetko sa s VBA dá vykonať – na čo VBA slúži? Program Excel ľuďom slúži na vykonávanie množstva úloh:
Formátovanie tabuliek, buniek… Tvorba faktúr, objednávok Používanie vzorcov a výpočtov Analýzu dát a tvorbu výstupov, či už v grafickej alebo textovej forme Tvorbu formulárov Naceňovanie a tvorba rozpočtov Tvorba databáz o zákazníkoch, faktúrach, dodávateľoch a mnoho, mnoho ďalších praktických vecí A práve VBA slúži na automatizáciu týchto úkonov, ktoré niektorí ľudia vykonávajú mesačne, týždenne, denne alebo na minútovej/sekundovej báze. Takže viete niekedy vďaka jednému kliknutiu na tlačidlo ušetriť desiatky hodín práce.
Toľko teória.
Programovacie prostredie: My sa budeme venovať VBA v exceli. V prvom rade potrebujeme v hornej lište kartu VÝVOJÁR.
Príloha:
excel.png [ 22.48 KiB | Zobrazené 5236 krát ]
Ľavý klik na SÚBOR, otvorí sa niečo takéto (záleží od verzie excelu):
Príloha:
možnosti.png [ 19.95 KiB | Zobrazené 5237 krát ]
Ľavý klik na Možnosti, tam otvoriť: Prispôsobiť pás s nástrojmi a tam zafajknúť kartu Vývojár.
Príloha:
vývojár.png [ 74.63 KiB | Zobrazené 5237 krát ]
Teraz už len otvoriť kartu VÝVOJÁR a kliknúť na ikonku Visual Basic úplne vľavo hore. (klávesová skratka: ľavý Alt + F11, odporúčam)
Príloha:
vba.png [ 29.79 KiB | Zobrazené 5237 krát ]
Hotovo. Môžeme začať programovať.
Hallo world Je zaužívaným zvykom, že prvý program v novom jazyku býva tzv. Hello world. Jedná sa o program, ktorý akýmkoľvek spôsobom zobrazí užívateľovi hlášku "Hello world" alebo nejaký podobný text.
Vo VBA budeme spočiatku používať tzv. Moduly. Vytvorme si teda nový Modul.
Príloha:
Module.png [ 32.05 KiB | Zobrazené 5237 krát ]
Premenujme ho na HelloWorld.
Príloha:
názov modulu.png [ 23.01 KiB | Zobrazené 5237 krát ]
Napíšeme prvý program. Program v module začíname slovom Sub, potom píšeme názov programu (zásadne bez medzier a diakritiky) a ja používam "ťaviu" anotáciu, napr. HelloWorld alebo AhojSkolkari. Potom stačí stlačiť Enter a VBA sám dokončí ukončenie programu.
Kód:
Sub HelloWorld()
' telo programu
End Sub
Do tela píšeme samotný program. Nikdy nezabúdajme na komentáre, teda popis programu. Robí sa jednoducho. Riadok komentára začína apostrof: ' Napríklad. ' Toto je komentár. Program môže vyzerať takto:
Príloha:
Hello.png [ 67.74 KiB | Zobrazené 5236 krát ]
Aby sme mali prehľad, čo robí program v exceli, dáme si na ľavú polovičku monitora excel a na pravú polovičku VBA.
Príloha:
excel_vba.png [ 201.97 KiB | Zobrazené 5237 krát ]
Posledná vec tejto lekcie je spustenie programu na otestovanie, či pracuje tak ako sme chceli. Zhruba v strede hornej lišty je tlačítko zelený trojuholník.
Príloha:
spusti.png [ 41.56 KiB | Zobrazené 5236 krát ]
Spustíme program tak, že sa myšou postavíme do tela programu a potom stlačíme zelený trojuholník alebo klávesu F5.
Príloha:
run_program.png [ 226.75 KiB | Zobrazené 5236 krát ]
Vidíme, že náš program robí to, čo sme od neho chceli. Ešte jedna vec. Do jedného modulu môže ísť programov viac. Stačí na ďalšom riadku napísať
Kód:
Sub MojProgram()
End Sub
a môžeme písať ďalší program. Spustenie konkrétneho programu sa robí tak, že sa doň postaví myš a stlačí sa zelený trojuholník alebo F5.
Domáca úloha: 1. Napíš program:
Kód:
' program za pomoci funkcie Range() zmaže obsah všetkých ' viditeľných buniek v exceli na ľavej polovičke obrazovky ' Pomôcka: (oblasť buniek sa označuje takto B1:C2 alebo B11,C22) Sub Vycisti()
Použi obidva spôsoby.
Spoiler:
Kód:
Sub Vycisti()
' nastavenie oblasti buniek Range("A1,K35").Select ' druhý spôsob Range("A1:K35").Select ' nastaviť sa môže aj celý hárok: ActiveSheet.Select
' vyčistenie buniek Cells.Clear 'prechod na 1. bunku Range("A1").Select
End Sub
2. Napíš program:
Kód:
' program vypíše do buniek v tvare štvorca o strane ' 4 bunky veľké písmeno X a ľavý horný roh štvorca ' bude v bunke B4 Sub Stvorec()
Spoiler:
Kód:
Sub Stvorec()
' nastavenie oblasti buniek a vloženie X do buniek Range("B4:E7").value = "X" 'prechod na 1. bunku Range("A1").Select
End Sub
_________________ kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor), Skype: libcokamo, ICQ: 56312279 Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.
Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 0 hostia
Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre Nemôžete zasielať súbory v tomto fóre