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

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » rozbor-makra-vba-kodu

Rozbor makra - VBA kódu

Videokurzy Excel

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

Jak je vlastně makro koncipováno, z čeho se skládá.

Úvodem k rozboru maker a VBA kódu

Každý VBA kód makro má svou strukturu, pro znalého člověka není problém se v kódu zorientovat a poznat co má provádět. Pro neznalého to může být změť divných nic neříkajících slov. Zorientovat se v kódu není složité, pomůže nám barevně označené části textu a jejich struktura v řádcích, stejně tak jako označení hlavičky a konce "procedury", názvy funkce, klíčová slova (například pro cykly), označení poznámek atd.

Barvy maker a VBA kódu

Spustite-li si VBA editor s nahraným makrem nebo VBA kódem, zjistíte, že text je různobarevný. Použité barvy mají svůj význam a pomáhají se Vám v kódu zorientovat a případně najít chybu.

  • zelená - pro poznámky
  • červená - pro chybný řádek
  • modrá - pro "klíčová slova" programovacího jazyka, tato slova nesmíte použít pro nic jiného (jiné) částí kódu
  • černá - ostatní text
  • hnědá - kód označen zarážkou
  • žlutě podbarveno - došlo k chybě

Vlastní makro (hlavička konec)

Makro je uvozeno a ukončeno. Toto zabírá dva řádky (uvozující a ukončující). První řádek obsahuje uvozující slovo Sub - označující typ VBA kódu/makra/procedury/události (podrobněji proberu v dalším článku). Název tohoto makra/procedury případně události. Název tohoto makra/procedury/události je vždy doplněn závorkami (), v případě nutnosti může závorka obsahovat další údaje (o těch se zmíním v dalším článku). Ukončení je uvozeno End Sub. V následujících ukázkách můžete vidět jak hlavička a ukončení procedury/makra vypadá.

Sub Makro() ---- příkazy ---- End Sub

Nebo:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ---- příkazy ---- End Sub

Komentáře

Nejsou pro kód důležité. Jsou důležité pro Vás, až se budete ke kódu po čase vracet. Ať víte, co znamenají Vaše příkazy. Z osobní zkušenosti doporučuji komentáře psát. Později Vám ulehčí práci při přemýšlení proč a jak Váš kód funguje. Uvozeny jsou znakem ' a mají zelenou barvu (pro odlišení od ostatního textu). Příklad

' nezobrazím dialogové okno

Vlastní kód

Uvnitř hlavičky je napsán vlastní kód. Jak se tvoří kód je popsáno v následujících článcích. Ukázkový kód může vypadat například takto:

MsgBox ("Byl proveden dvojklik.") Cancel = True

Chybný kód

Povede-li se Vám v kódu udělat chybu a ignorujete-li informaci o chybě zobrazí se daná část kódu červeně, čímž je jasné, že tento řádek bude potřebovat opravu.

fff =

Poznámka: Zobrazují se jen chyby v syntaxi. Logické chyby se bohužel červeně nezobrazí.

Celý kód

Pokud se pospojuje vše dohromady, máte k dispozici funkční VBA kód včetně poznámek.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, ByRef Cancel As Boolean) MsgBox ("Byl proveden klik pravým tlačítkem myši!") ' cancel - provede deaktivaci kontextového menu Cancel = True End Sub

Článek byl aktualizován: 01.11.2014 14:39

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, PowerPoint) se věnuji od roku 2000 (od 2004 ne této doméně) - Roku 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 také na on-line videích pro SEDUO. Školím a konzultuji, učím na MUNI. Hlavně tvořím tento web. Je zde k dispozici přes 1.000 návodu, tipů a triků včetně stovek 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


Olda

Přidáno: 16.09.15 12:22

Dobrý den, rád bych Vás požádal o radu. Vytvořil jsem makro, které v pořádku funguje, ale na některých počítačích je problém s češtinou např. místo písmena ř se zobrazuje znak průměru. Makro není schopno takový sloupec zpracovat. Problém mám u kont. tabulky s textem Počet z, tam to č nedokážu obejít. Existuje v makru nějaká úprava kódování, aby se to nedělo? Děkuji.







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 - 2017 | 18664

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