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

Jste zde: Úvodní stránka » excel » vba » ms-excel-vba-uvod

Excel VBA makra - úvod do programování

aneb využijte Visual Basic při programování v Excelu

Makro úvod

Nápověda je pouze v angličtině, asi se jim to nechtělo kvůli několika bláznům překládat. Alespoň se člověk zdokonaluje v technické angličtině.

Výborně se hodí pro stále se opakující činosti. Případně chceme-li vytvořit v excelu něco profesionálního neobjedeme se bez maker. Jejich použití je v excelu velice jednoduché. Stačí mít základy programování ve Visual Basicu (či v jiném programovacím jazyku) a již můžete programovat.

Jednoduché makro

excel: výběr makra

Pro stále se opakující činosti můžeme nahrát makro (pokud jej nechceme programovat).

Z nástrojové lišty Nástroje - Makro - Záznam nového makra... .


excel: volba názvu

Zadáme název makra:


a již můžeme psát či provádět často opakované pohyby. Až bude vše hotovo tak stačí makro stopnout tlačítkem. excel: ukončení a máme makro hotovo.

excel: výběr makra

Pokud jej chceme spustit stačí přes menu Nástroje - Makro - Makra... a vybereme naše makro podle názvu.


Toto by bylo v kratkosti o makrech a jejich záznamech, osobně moc nepouživám, více možnosti nabízí vlastní programování maker na která se podíváme dále:

Složitější makro

aneb využijeme Visual Basic :)

excel: výběr makra

Spustíme nejprve Visual Basic. V menu Nástroje vybereme makro a poté Editor jazyka Visual Basic


excel: okno visual Basic

Otevře se nám vlastní okno ve Visual Basicu. Doporučuji si ještě zobrazit okna Project Explorer a Properties Window excel: okno visual Basic a obdržíme již použitelnou obrazovku:


excel: okno visual Basic

Tak a máme přehledně uspořadanou plochu se všemi potřebnými drobnostmi. No a můžeme se vrhnout do našeho prvního programu.


První program

Z menu vybereme Insert - Module a můžeme napsat náš První program. Pro jednoduchost si vybereme napriklad součet (jde jen o ukázku a kontrolu a to je nejlépe provádět na něčem jednoduchém.


Function secti(x, y)
secti = x + y
End Function

excel: ukazky výsledku funkce secti
excel: kontrola

Pro kontrolu nami vytvořených programů existuje mnoho prostředků, např.: Object Browser, který nám umožní i vložit popisek námi vytvořené funkce. Ať víme co jsme si to naprogramovali.


excel: kontrola

Ke každé funci si můžeme uložit komentář. V Object Browser pravým tlačítkem na funci vybereme Properties...


excel: kontrola

Zde zadáme náš popis. Po stisknutí OK se uloží naše poznámka uloží.


excel: vložení funkce

A teď již můžeme v excelu naší první funkci použít. Vybereme Vlož - Funkce A vybereme vlastní funkce.


excel: vložení funkce

Zde již je stačí kliknout na název námi vytvořené funkce a hotovo :)


excel: ukazky výsledku funkce secti

A tohle je výsledek...

Tak a tímto bychom měli svou první naprogramovanou funkc. Je pravda , že zadaním =10+20 máme součtovou funkci hnedle a bez programování, ale cílem bylo ukázat jak narogramovat funkci na jednoduchém příkladě. Složitější příklady budou následovat.


VBA - makra v přípravě

Např. použití cyklů, helsování, vlastní menu a mnoho dalšího zajimavého...

Upozornění

Testováno v programu Excel 2003. V starších aplikacích nemusí některe funkce fungovat.

Článek byl aktualizován: 14.01.2010 17:11



| tisk stránky TISK | nahoru NAHORU |
| |

Další články k tématu




Komentáře


Michael

Přidáno: 15.08.11 12:41

Zdravím. Potřeboval bych poradit ohledně makra. Řekněme, že v buňce A1 mám [Ahoj] v buňce B1 mám [=A1], a tudíž taky Ahoj. Jak zařídím, aby mi makro místo vzorce =A1 kopíroval výsledek vzorce? děkuji

Pavel Lasák

Přidáno: 25.08.11 17:32

To Michael: použití Paste:=xlPasteValues

Toman

Přidáno: 06.09.11 10:41

Dobrý den, jsem pouhým uživatelem excelu, ale potřeboval bych pomoc s načítáním řádků databáze z tebulky 2 do tabulky 1 podle např. klíčového čísla v odstavci. Je zde někdo kdo by pomohl v této věci, děkuji. Toman PS: Email: toman@tradeservicing.cz

Fanky

Přidáno: 19.09.11 09:35

Dobry den, potrebujem pomoct s makrom na vytvorenie statickej hlavicky v subore, a oznacenim sumarnych riadkov. Zrejme pojde o niekolko prikazov, neovladam to a pre kratkost casu ani nestihnem nastudovat. Ak by niekto vedel pomoct, budem sa revanzovat. Podrobne info na adrese infoserver7@gmail.com Skype kontakt: petervali Dakujem

Tomás

Přidáno: 15.01.12 12:19

Dobrý den, potrebuju poradit. Jak udelat v tabulce excel. Aby mě upozrnovala na bližíci se datumy.Email: vajra@seznam.cz

Pavel Lasák

Přidáno: 15.01.12 17:45

To Tomás: Například pomocí funkce KDYŽ nebo podmíněného formátování.

Aleš

Přidáno: 21.02.12 15:32

Dobrý den, potřeboval bych poradit, jak napsat či nahrát makro, v následující situaci. Mám na listu více než 150 skladových položek (každá v jednom řádku). V jedné buňce je stav kusů v hlavním skladu a v sousední buče na řádku je stav téže položky v manipulačním skladu. Potřeboval bych, aby pro zvolenou položku po stisku tlačítka (to umím zadat) makro odečetlo 1 kus z hlavního skladu a přičetlo 1 kus do manipulačního skladu. Děkuji za pomoc Aleš

Pavel Lasák

Přidáno: 21.02.12 18:18

To Aleš: Nejprve načíst hodnotu http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/ změnit -/+ 1 a pak zapsat http://office.lasakovi.com/excel/vba-listy-bunky/zapis-udaj-do-bunky-excel-vba/

Josef Barták

Přidáno: 25.02.12 10:11

Mám na List1 jmenný seznam lidí s daty v řádcích a ke každé osobě potřebuji přiřadit typ práce pomocí tříznakové zkratky např: noční práce NOC nebo třísměnný provoz 3SP. Stejnými zkratkami jsou označeny názvy listů s předdefinovaným textem k dané práci. Jak nadefinovat tlačítko tisk, aby po zadání zkratek 3SP, NOC nebo dalších do jedné buňky se označily do náhledu tisku příslušné listy. Děkuji za odpověď. Josef

Pavel Lasák

Přidáno: 25.02.12 16:26

To Josef Barták: Nepostačí vám využít filtr? http://office.lasakovi.com/excel/data/ms-excel-filtry-uvod/

Josef Barták

Přidáno: 25.02.12 17:29

Nestačí, protože je třeba vytisknout ke každě osobě protokol práce a to na samostatný list. Při stisku tlačítka tisk umístěného na řádku osoby by mělo dojít ke zobrazení náhledu před tiskem z vyselektovaných listů, vybraných dle třípísmenné kombinace, zadané do buňky na řádku osoby (např: 3SP, MAD, NOC atd. Názvy listů opět 3SP, MAD, NOC atd.) Jestli je to ale ve VBA možné?

Pavel Lasák

Přidáno: 26.02.12 11:57

To Josef Barták: Je to možné. Vybrané třípísmené kombinace vyčtu z buňky http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/ pomoci textových funkci vyzobu MAD, NOC a pak vyberu list Sheets(Array("List1", "List2")).Select Sheets(Array("3SP", "MAD", "NOC")).Select A provedu obrazení před tiskem.

MAD, NOC, lze vzít i ze zobrazeného formuláře, kde uživatel zaškrtne co potřebuje tisknout.

Aleš

Přidáno: 26.02.12 14:52

Dobrý den, potřebuji konkrétní vzorec ve VBA, který by snížil hodnotu ve vybrané buňce např. A2 o hodnotu 1 (jedna) a zároveň zvýšil hodnotu v buňce sousední A3 taktéž o hodnotu 1(jedna). Děkuji

Pavel Lasák

Přidáno: 26.02.12 15:21

TO Aleš: přečíst údaj z buňky http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/ přičíst 1 a zapsat http://office.lasakovi.com/excel/vba-listy-bunky/zapis-udaj-do-bunky-excel-vba/

Petr

Přidáno: 03.05.12 12:41

Ahoj, možná blbý dotaz. Mám určitou představu o funkčnosti tabulky v excelu, tak mě to přivedlo až k VBA,makrům a pod. Princip by měl být asi takový: Budu mít aspoň jednu buňku, seznam předdefinovaných údajů ( dejme tomu 3 města) jeden list sešitu bude obsahovat "databazi" (město, ulice, firma atd...). Ve zmiňovaném seznamu si zvolím město, kliknu na čudlík, spustím třeba makro a chci aby mě to do určitého pole (víc řádků) vypsalo všechny řádky z "databaze" které obsahují ono zvolené město. Je to sci-fi, nebo by se to dalo realizovat? Dekuji

Pavel Lasák

Přidáno: 03.05.12 18:41

To Petr: Dá se realizovat. Zkusím připravit článek jak hledat a kopírovat údaje.

Ludvik

Přidáno: 17.05.12 13:26

Zdravím, Potřeboval bych pomoci s vytvořením makra na propojení MS Project s MS Excel tak, aby mi propojil danou buňku v MS Project s buňkou v MS Excel či naopak, aby buňka v MS Excelu ukázala hodnotu v buňce v MS Project. díky předem


Přidání nového komentáře




(vlož číslo šest)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky a URL. 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.




Nejnovější článek

Z článku o excel jsem jako poslední přidal či upravil článek 21.05.2012:
Zrychlení kódu ve VBA - Excel.

Nejčtenější článek




Google+

  

Facebook

facebook  

Novinky

Word: 12.5.2012:
Matematické rovnice (vzorce) - Word 2010

Excel: 21.05.2012:
Zrychlení kódu ve VBA - Excel

Access: 28.04.2012:
VBA - Jak spustit v MS Access

Power Point: 25.04.2012:
SmartArt - PowerPoint 2010

Outlook 26.04.2012:
Outlook 2010 - jak vypadá

Project: 05.04.2012:
Kalendář ukázka

OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky

Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office

Poděkování

Poděkování patří hlavně mojí nejbáječnější manželce.

LinkedIN

Translate

     

Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková | 27619

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