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

Jste zde: Úvodní stránka » excel » vba » zapis-kodu-VBA

Zápis kódu ve VBA

Videokurzy Excel

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

Jak si zpřehlednit kódy ve VBA - nutné pro rozsáhlejší projekty nebo když na těchto projektech pracuje více osob.

Úvodem

Přehledný a pochopitelný kód je základem. Ve chvíli kdy kód píšete, může být vše jasné. Stáhnete ukázku z webu, ověříte funkčnost, zajásáte, že funguje, nenapíšete poznámky a jdete na další úkol (kód). Když se podíváte na kód za nějaký ten pátek zjistíte, že si nejste přesně jisti co je úkolem toho kterého kódu, které tlačítko se na tento kód odkazuje atd. Proto doporučuji si zvyknout na nějaký systém zápisu. V následujícím textu jsou poznámky, které jsem načerpal při procházení kódu na internetu a při psaní vlastních kódu.

Doporučení pro tvorbu VBA kódu

V kódu doporučuji používat:

  • Komentáře
  • Odsazování
  • Velká a malá písmena
  • Rozdělení příkazu na více řádků
  • Prázdné řádky
  • Pojmenování objektů
  • Více příkazů na jeden řádek

Komentáře

Hlavně se donutit je napsat. To že kód funguje je první úspěch, po čase mu musíte rozumět také vy. Oceníte po čase až budete kód doplňovat. Komentář začíná apostrofem a v kódu je napsán zeleně. Kód lze psát i na konec vykonávaného příkazu, vzorce.

Do poznámek si schovávám i části kódu, které jsem zkoušel, ale nefungovali úplně na 100%. Kódy se mohou hodit při následujícím vylepšování.

' toto je komentář ' ------------------------------------------------------- ' - Komentář pro office.lasakovi.com - ' -------------------------------------------------------

Odsazování

Využijete pro cykly, case příkazy, atd. Pro odsazení je doporučeno je použít 4 mezery (ale když jich dáte 5 nebo 3 nic se neděje). Zaleží na Vás, kterou možnost zvolíte. Při důsledném psaní takto jednoduše poznáte, kde co začíná a končí.

With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With

Velká a malá písmena

Sice VBA Excel malá a velká písmena ignoruje, ale pro Vás to může představovat zpřehlednění kódu. Například procedura. vygenerujnahodnecislo proti VygenerujNahodneCislo se lépe čte než dlouhý zápis stejnou velikosti písmen. Alespoň mi jako dyslektikovy to pomáhá hodně. Kód je přehlednější a lépe se v něm orientuje.

Poznámka: Navíc některé příkazům se změní velikost písmen automaticky. Např. End With nepodaří se Vám napsat end with (aniž by došlo k automatické změně).

If PocetTabulek = 3 Then ZmenNaBilouBarvu End If

Rozdělení příkazu na více řádku

Pokud je nějaký příkaz dlouhý doporučuji jej rozdělit na více řádky. Osobně nemám rád rolovaní vpravo, vlevo. Navíc se mi velice špatně čtou dlouhé příkazy v jednom řádku. Osobně si myslím, že rozdělení také pomůže více zpřehlednit kód. Používá se mezera a _ (podtržítko).

Set rCol = Application.InputBox(Prompt:="Vyber sloupc:", _ Title:="UPRAVIT SLOUPEC", Type:=8)

Prázdné řádky

Opět zpřehlední kód, který bude vzdušnější.

Viděl jsem i kód, kde na prázdném řádku byl na začátku apostrof (tj. řádek byl poznámkou), ale tento způsob mě nezaujal. Jednoduše nechávám prázdné řádky.

Pojmenování objektů

Pojmenujte smysluplně objekty. Například tlačítko CommandButton4 z názvu nepoznáte co má tlačítko dělat, pokud jej pojmenujete CmbSpustPreindexaciDatabaze (víte, že jde o tlačítko i co bude dělat).

Pro popsi využívám velká a malá písmena...

Více příkazů na jeden řádek

Dělí se dvojtečkami. Osobně nepoužívám, nemám rád dlouhé řádky. Spíše využívám možnosti řádek (pokud je dlouhý) rozdělit. Někomu se ale může hodit.

For Each n in abcd: MsgBox n: Next

Závěrem

Pokud se jedná o jednoduchý VBA kód, který je na jedno použití tak klidně nechte přednastavené názvy, bez poznámek, bez mezer. Jinak v komentářích můžete doplnit pokud pro tvorbu VBA maker používáte jiná vylepšení, která VBA kód zpřehledni?

Č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


Vilém Robotka

Přidáno: 20.05.16 18:50

Mám dotaz. Jak zapíši makrem úpravu obrázků na všech listech. V office 2007 je to pod ,,Komperese obrázků" kde si zvolím možnost pro všechny obrázky a 200pixelů. V makrech se moc nevyznám, vesměs jen hledám na internetu a lučuju. Když si dám záznam makra tak mi to po provedení toho zmenšení nic nezapíše. A potřebuji aby to prošlo celý dokument nezávisle na tom kolik má listů a jak se jmenují. Děkuji






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