Pomenovanie položiek a funkcií Excelu VBA

Rovnako ako ľudia, domáce zvieratá a hurikány, každá procedúra sub a funkcie Excel VBA musí mať názov. Aj keď je úplne prijateľné pomenovať svojho psa Hairball Harris, zvyčajne nie je dobrý nápad použiť takýto voľný prístup pri pomenovaní procedúr Excl VBA. Pri pomenovávaní procedúr Excel VBA musíte dodržiavať niekoľko pravidiel:

  • Môžete použiť písmená, čísla a niektoré interpunkčné znaky, ale prvý znak musí byť písmeno.
  • V názve nemôžete použiť žiadne medzery ani bodky.
  • VBA nerozlišuje medzi veľkými a malými písmenami.
  • V názve procedúry nemôžete použiť žiadny z nasledujúcich znakov: #, $, %, &, @, ^, * alebo !. Inými slovami, názov vašej procedúry nemôže vyzerať ako nadávky v komikse.
  • Ak napíšete procedúru Function na použitie vo vzorci, nepoužívajte názov, ktorý vyzerá ako adresa bunky (napríklad A1 alebo B52). V skutočnosti Excel umožňuje takéto názvy funkcií, ale prečo robiť veci viac mätúcimi, ako už sú?
  • Názvy procedúr nemôžu byť dlhšie ako 255 znakov. (Samozrejme, nikdy by ste nepomenovali postup tak dlho.)

V ideálnom prípade názov procedúry popisuje účel rutiny. Osvedčeným postupom je vytvoriť názov kombináciou slovesa a podstatného mena – napríklad ProcessData, PrintReport, Sort_Array alebo CheckFilename.

Niektorí programátori uprednostňujú používanie názvov podobných vetám, ktoré poskytujú úplný popis postupu. Niektoré príklady zahŕňajú WriteReportToTextFile a Get_Print_Options_and_Print_Report. Používanie takýchto dlhých názvov má svoje výhody aj nevýhody. Na jednej strane sú takéto názvy opisné a zvyčajne jednoznačné. Na druhej strane ich písanie trvá dlhšie. Každý si vytvorí štýl pomenovania, ale ak vaše makro nie je len rýchle a špinavé dočasné makro, je dobré byť popisný a vyhnúť sa nezmyselným názvom ako DoIt, Update, Fix a stále populárnejšie Macro1.

Vykonávanie procedúr Excel VBA Sub

Aj keď v tomto bode možno neviete veľa o vývoji procedúr Sub, je dôležité vedieť, ako tieto procedúry vykonávať. Procedúra Sub je bezcenná, pokiaľ neviete, ako ju vykonať.

Mimochodom, vykonanie procedúry Sub znamená to isté ako spustenie alebo volanie procedúry Sub. Môžete použiť akúkoľvek terminológiu, ktorú chcete.

Sub VBA Sub môžete spustiť mnohými spôsobmi; to je jeden z dôvodov, prečo môžete robiť toľko užitočných vecí pomocou procedúr Sub. Tu je úplný zoznam spôsobov vykonania procedúry Sub:

  • Vyberte Spustiť → Spustiť Sub/UserForm (vo VBE). Excel vykoná procedúru Sub, v ktorej sa nachádza kurzor. Tento príkaz ponuky má dve alternatívy: kláves F5 a tlačidlo Run Sub/UserForm na štandardnom paneli nástrojov vo VBE. Tieto metódy nefungujú, ak postup vyžaduje jeden alebo viac argumentov.
  • Použite dialógové okno Makro v Exceli. Toto pole otvoríte výberom Vývojár → Kód → Makrá alebo výberom Zobraziť → Makrá → Makrá. Alebo obíďte pás s nástrojmi a stlačte Alt + F8. Keď sa zobrazí dialógové okno Makro, vyberte požadovanú procedúru Sub a kliknite na tlačidlo Spustiť. V tomto dialógovom okne sú uvedené iba postupy, ktoré nevyžadujú argument.
  • Stlačte Ctrl+kláves (alebo Ctrl+Shift+kláves) priradený k procedúre Sub (za predpokladu, že ste ju priradili).
  • Kliknite na tlačidlo alebo tvar v pracovnom hárku. Tlačidlo alebo tvar musí mať priradenú procedúru Sub – čo je veľmi jednoduché.
  • Z inej procedúry Sub, ktorú píšete.
  • Kliknite na tlačidlo, ktoré ste pridali na panel s nástrojmi Rýchly prístup.
  • Z vlastnej položky, ktorú ste pridali na pás s nástrojmi.
  • Keď dôjde k udalosti. Tieto udalosti zahŕňajú otvorenie zošita, zatvorenie zošita, uloženie zošita, vykonanie zmeny v bunke, aktiváciu hárka a ďalšie veci.
  • Z okna Immediate vo VBE. Stačí zadať názov procedúry Sub a stlačiť Enter.

Niektoré z týchto techník sú uvedené nižšie. Ak chcete pokračovať, musíte zadať procedúru Sub v module VBA:

Začnite s novým pracovným zošitom.

Stlačením Alt+F11 aktivujte VBE.

Vyberte zošit v okne Projekt.

Vyberte Vložiť → Modul na vloženie nového modulu.

Do modulu zadajte nasledovné:

Sub ShowCubeRoot()
  Num = InputBox("Zadajte kladné číslo")
  MsgBox Num ^ (1/3) & "je odmocnina kocky."
End Sub

Tento postup vyžaduje od používateľa číslo a potom zobrazí odmocninu kocky tohto čísla v okne so správou. Tieto obrázky ukazujú, čo sa stane, keď vykonáte tento postup.

Pomenovanie položiek a funkcií Excelu VBA

Pomocou vstavanej funkcie VBA InputBox získate číslo.

Tu nájdete aj to, čo sa deje prostredníctvom funkcie MsgBox.

Pomenovanie položiek a funkcií Excelu VBA

Zobrazenie odmocniny čísla prostredníctvom funkcie MsgBox.

Mimochodom, ShowCubeRoot nie je príkladom dobrého makra. Nekontroluje chyby, takže ľahko zlyhá. Skúste kliknúť na tlačidlo Zrušiť vo vstupnom poli alebo zadajte záporné číslo. Každá akcia má za následok chybové hlásenie.

Priame spustenie procedúry Excel VBA Sub

Jedným zo spôsobov, ako vykonať tento postup, je vykonať to priamo z modulu VBA, v ktorom ste ho definovali. Nasleduj tieto kroky:

Aktivujte VBE a vyberte modul VBA, ktorý obsahuje procedúru.

Presuňte kurzor kdekoľvek v kóde procedúry.

Stlačte F5 (alebo vyberte Spustiť → Spustiť pod/UserForm).

Odpovedzte na vstupné pole a kliknite na tlačidlo OK.

Postup zobrazí odmocninu zadaného čísla.

Nemôžete použiť Run → Run Sub/UserForm na spustenie procedúry Sub, ktorá používa argumenty, pretože nemáte žiadny spôsob, ako odovzdať argumenty procedúre. Ak procedúra obsahuje jeden alebo viac argumentov, jediný spôsob, ako ju spustiť, je zavolať ju z inej procedúry, ktorá musí poskytnúť argument(y).

Spustenie procedúry z dialógového okna Makro v Exceli

Väčšinu času spúšťate procedúry Sub z Excelu, nie z VBE. Nasledujúce kroky popisujú, ako spustiť makro pomocou dialógového okna Makro v Exceli:

Ak pracujete vo VBE, aktivujte si Excel.
Stlačenie Alt+F11 je expresná cesta.

Vyberte Vývojár → Kód → Makrá (alebo stlačte Alt+F8).
Excel zobrazí dialógové okno zobrazené tu.Pomenovanie položiek a funkcií Excelu VBA

V dialógovom okne Makro sú uvedené všetky dostupné procedúry Sub.

Vyberte makro.

Kliknite na položku Spustiť (alebo dvakrát kliknite na názov makra v zozname).

V dialógovom okne Makro sa nezobrazujú postupy Sub, ktoré používajú argumenty. Je to preto, že neexistuje spôsob, ako špecifikovať argumenty.

Spustenie makra Excel VBA pomocou klávesovej skratky

Ďalším spôsobom spustenia makra je stlačenie jeho klávesovej skratky. Pred použitím tejto metódy však musíte makru priradiť klávesovú skratku.

Keď začnete zaznamenávať makro, máte možnosť priradiť klávesovú skratku v dialógovom okne Záznam makra . Ak vytvoríte procedúru bez použitia záznamníka makier, môžete priradiť klávesovú skratku (alebo zmeniť existujúcu klávesovú skratku) pomocou nasledujúcich krokov:

Vyberte Vývojár → Kód → Makrá.

Zo zoznamu vyberte názov podprocedúry.

V tomto príklade má procedúra názov ShowCubeRoot.

Kliknite na tlačidlo Možnosti.
Excel zobrazí dialógové okno Možnosti makra zobrazené tu.Pomenovanie položiek a funkcií Excelu VBA

Dialógové okno Možnosti makra vám umožňuje nastaviť možnosti pre vaše makrá.

Kliknite na možnosť Klávesová skratka a zadajte písmeno do poľa označeného Ctrl.

Písmeno, ktoré zadáte, zodpovedá kombinácii klávesov, ktoré chcete použiť na vykonanie makra. Napríklad, ak zadáte malé písmeno c, makro môžete spustiť stlačením Ctrl+C. Ak zadáte veľké písmeno, musíte do kombinácie kláves pridať kláves Shift. Ak napríklad zadáte C, makro môžete spustiť stlačením Ctrl+Shift+C.

Kliknutím na tlačidlo OK zatvorte dialógové okno Možnosti makra a potom kliknutím na tlačidlo Zrušiť zatvorte dialógové okno Makro.
Po priradení klávesovej skratky môžete stlačením tejto kombinácie kláves spustiť makro. Klávesová skratka nefunguje, ak je priradená k makru, ktoré používa argument.

Klávesové skratky, ktoré priradíte makrám, prepíšu vstavané klávesové skratky Excelu. Napríklad Ctrl+C je štandardná klávesová skratka na kopírovanie údajov. Ak makru priradíte Ctrl+C, nemôžete použiť Ctrl+C na kopírovanie. Zvyčajne to nie je veľký problém, pretože Excel takmer vždy poskytuje iné spôsoby vykonávania príkazov.

Spustenie procedúry Excel VBA z tlačidla alebo tvaru

Niekedy sa vám môže páčiť myšlienka priradenia makra k tlačidlu (alebo akémukoľvek inému tvaru) na pracovnom hárku. Ak chcete priradiť makro Excel k tlačidlu, postupujte takto:

Aktivujte pracovný hárok.

Pridajte tlačidlo zo skupiny Ovládacie prvky formulára.
Ak chcete zobraziť skupinu Ovládacie prvky formulára, vyberte Vývojár → Ovládacie prvky → Vložiť.Pomenovanie položiek a funkcií Excelu VBA

Pás s nástrojmi zobrazujúci ovládacie prvky dostupné po kliknutí na položku Vložiť na karte Vývojár.

Kliknite na nástroj Tlačidlo v skupine Ovládacie prvky formulára.

Je to prvé tlačidlo v prvom rade ovládacích prvkov.

Potiahnutím v pracovnom hárku vytvorte tlačidlo.
Po pridaní tlačidla do pracovného hárka Excel prečíta vašu myseľ a zobrazí dialógové okno Priradiť makro zobrazené nižšie.Pomenovanie položiek a funkcií Excelu VBA

Keď pridáte tlačidlo do pracovného hárka, Excel automaticky zobrazí dialógové okno Priradiť makro.

Vyberte makro, ktoré chcete priradiť tlačidlu.

Kliknite na tlačidlo OK.

Po vykonaní úlohy kliknutím na tlačidlo spustíte makro – rovnako ako mágiu.

Keď pridáte tlačidlo, všimnite si, že rozbaľovacie pole zobrazuje dve sady ovládacích prvkov: ovládacie prvky formulára a ovládacie prvky ActiveX. Tieto dve skupiny ovládacích prvkov vyzerajú podobne, ale v skutočnosti sú veľmi odlišné. V praxi sú ovládacie prvky formulára jednoduchšie na používanie.

Makro môžete priradiť aj akémukoľvek inému tvaru alebo objektu. Predpokladajme napríklad, že chcete spustiť makro, keď používateľ klikne na objekt Obdĺžnik. Nasleduj tieto kroky:

Pridajte obdĺžnik do pracovného hárka.

Vložte obdĺžnik výberom Vložiť → Ilustrácie → Tvary.

Kliknite pravým tlačidlom myši na obdĺžnik.

V ponuke skratiek vyberte položku Priradiť makro.

Vyberte makro v dialógovom okne Priradiť makro.

Kliknite na tlačidlo OK.
Po vykonaní týchto krokov sa kliknutím na obdĺžnik spustí priradené makro.

Spustenie procedúry z inej procedúry Excel VBA

Procedúru Excel VBA môžete spustiť aj z inej procedúry. Ak to chcete vyskúšať, postupujte podľa týchto krokov:

Aktivujte modul VBA, ktorý obsahuje rutinu ShowCubeRoot.

Zadajte tento nový postup (buď nad alebo pod kódom ShowCubeRoot – nezáleží na tom):

Sub NewSub()
  Zavolajte ShowCubeRoot
End Sub

Po dokončení jednoducho spustíte makro NewSub.

Najjednoduchší spôsob, ako to urobiť, je presunúť kurzor kdekoľvek v rámci kódu NewSub a stlačiť F5. Všimnite si, že táto procedúra NewSub jednoducho spustí procedúru ShowCubeRoot.

Mimochodom, kľúčové slovo Call je voliteľné. Príkaz môže pozostávať iba z názvu procedúry Sub. Použitím kľúčového slova Call je však úplne jasné, že sa volá procedúra.

Vykonávanie procedúr funkcie Excel VBA Function

Funkcie, na rozdiel od procedúr Sub, možno vykonávať iba dvoma spôsobmi:

  • Volaním funkcie z inej procedúry Sub alebo procedúry Function
  • Pomocou funkcie vo vzorci pracovného hárka

Vyskúšajte túto jednoduchú funkciu. Zadajte ho do modulu VBA:

Funkcia CubeRoot(číslo)
  CubeRoot = číslo ^ (1/3)
End Function

Táto funkcia je dosť slabá; vypočítava iba odmocninu čísla, ktoré mu bolo odovzdané ako argument. Poskytuje však východiskový bod pre pochopenie funkcií. Tiež ilustruje dôležitý koncept funkcií: ako vrátiť hodnotu. (Pamätáš si, že funkcia vracia hodnotu, však?)

Všimnite si, že jediný riadok kódu, ktorý tvorí túto procedúru funkcie, vykonáva výpočet. Výsledok matematiky (číslo s mocninou 1⁄3) je priradený k premennej CubeRoot. Nie náhodou CubeRoot je aj názov funkcie. Ak chcete funkcii povedať, akú hodnotu má vrátiť, priradíte túto hodnotu názvu funkcie.

Volanie funkcie Excel VBA z procedúry Sub

Pretože funkciu nemôžete vykonať priamo, musíte ju zavolať z inej procedúry. Zadajte nasledujúci jednoduchý postup v rovnakom module VBA, ktorý obsahuje funkciu CubeRoot:

Sub CallerSub()
  Ans = CubeRoot(125)
  MsgBox Ans
End Sub

Keď spustíte procedúru CallerSub, Excel zobrazí okno s hlásením, ktoré obsahuje hodnotu premennej Ans, ktorá je 5.

Tu je to, čo sa deje: Funkcia CubeRoot sa vykoná a dostane argument 125. Výpočet vykoná kód funkcie (pomocou hodnoty odovzdanej ako argument) a vrátená hodnota funkcie sa priradí premennej Ans. Funkcia MsgBox potom zobrazí hodnotu premennej Ans.

Skúste zmeniť argument, ktorý je odovzdaný funkcii CubeRoot a znova spustite makro CallerSub. Funguje to tak, ako by malo – za predpokladu, že funkcii dáte platný argument (kladné číslo).

Mimochodom, postup CallerSub by sa dal trochu zjednodušiť. Premenná Ans nie je skutočne potrebná, pokiaľ váš kód túto premennú nepoužije neskôr. Na získanie rovnakého výsledku môžete použiť tento jediný príkaz:

MsgBox CubeRoot(125)

Volanie funkcie Excel VBA zo vzorca pracovného hárka

Teraz je čas zavolať túto procedúru funkcie VBA zo vzorca pracovného hárka. Aktivujte pracovný hárok v rovnakom zošite, ktorý obsahuje definíciu funkcie CubeRoot. Potom do ľubovoľnej bunky zadajte nasledujúci vzorec:

=CubeRoot(1728)

Bunka zobrazuje 12, čo je skutočne odmocnina z 1 728.

Ako sa dalo očakávať, ako argument funkcie CubeRoot môžete použiť odkaz na bunku. Ak napríklad bunka A1 obsahuje hodnotu, môžete zadať =CubeRoot(A1) . V tomto prípade funkcia vráti číslo získané výpočtom tretej odmocniny hodnoty v A1.

Túto funkciu môžete v pracovnom hárku použiť ľubovoľný počet krát. Podobne ako vstavané funkcie Excelu, aj vaše vlastné funkcie sa zobrazia v dialógovom okne Vložiť funkciu. Kliknite na tlačidlo panela nástrojov Vložiť funkciu a vyberte kategóriu Definované používateľom. Ako je uvedené nižšie, v dialógovom okne Vložiť funkciu je uvedená vaša vlastná funkcia.

Pomenovanie položiek a funkcií Excelu VBA

Funkcia CubeRoot sa zobrazí v kategórii Definované používateľom v dialógovom okne Vložiť funkciu.

Ak chcete, aby sa v dialógovom okne Vložiť funkciu zobrazil popis funkcie, postupujte takto:

Vyberte Vývojár → Kód → Makrá.
Excel zobrazí dialógové okno Makro, ale CubeRoot sa v zozname nezobrazí. (CubeRoot je procedúra Function a tento zoznam zobrazuje iba procedúry Sub.) Netrápte sa.

Do poľa Názov makra zadajte slovo CubeRoot.

Kliknite na tlačidlo Možnosti.

Do poľa Popis zadajte popis funkcie.

Kliknutím na tlačidlo OK zatvorte dialógové okno Možnosti makra.

Zatvorte dialógové okno Makro kliknutím na tlačidlo Zrušiť.
Tento popisný text sa teraz zobrazuje v dialógovom okne Vložiť funkciu.

Tento obrázok zobrazuje funkciu CubeRoot používanú vo vzorcoch pracovného hárka.

Pomenovanie položiek a funkcií Excelu VBA

Použitie funkcie CubeRoot vo vzorcoch.

Už sa vám to možno začína dať dokopy.


Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime len na čítanie v systéme Windows Microsoft Word otvára súbory v režime len na čítanie, takže ich nie je možné upravovať? Nebojte sa, metódy sú uvedené nižšie

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť chyby pri tlači nesprávnych dokumentov Microsoft Word Chyby pri tlači dokumentov Word so zmeneným typom písma, chaotickými odsekmi, chýbajúcim textom alebo strateným obsahom sú pomerne časté. Avšak, nie

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Ak ste použili pero alebo zvýrazňovač na kreslenie na powerpointové snímky počas prezentácie, môžete si kresby uložiť pre ďalšiu prezentáciu alebo ich vymazať, aby ste pri ďalšom zobrazení začali s čistými powerpointovými snímkami. Ak chcete vymazať kresby perom a zvýrazňovačom, postupujte podľa týchto pokynov: Vymazanie riadkov jedna na […]

Obsah knižnice štýlov v SharePointe 2010

Obsah knižnice štýlov v SharePointe 2010

Knižnica štýlov obsahuje súbory CSS, súbory XSL (Extensible Stylesheet Language) a obrázky používané preddefinovanými vzorovými stránkami, rozloženiami strán a ovládacími prvkami v SharePointe 2010. Ak chcete nájsť súbory CSS v knižnici štýlov publikačnej lokality: Vyberte Akcie lokality→Zobraziť Všetok obsah stránky. Zobrazí sa obsah stránky. Knižnica štýlov sa nachádza v […]

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Nezahlcujte svoje publikum obrovskými číslami. V programe Microsoft Excel môžete zlepšiť čitateľnosť svojich tabúľ a zostáv formátovaním čísel tak, aby sa zobrazovali v tisíckach alebo miliónoch.

Ako zdieľať a sledovať lokality SharePoint

Ako zdieľať a sledovať lokality SharePoint

Zistite, ako používať nástroje sociálnych sietí SharePoints, ktoré umožňujú jednotlivcom a skupinám komunikovať, spolupracovať, zdieľať a spájať sa.

Ako previesť dátumy do Julianových formátov v Exceli

Ako previesť dátumy do Julianových formátov v Exceli

Juliánske dátumy sa často používajú vo výrobných prostrediach ako časová pečiatka a rýchla referencia pre číslo šarže. Tento typ kódovania dátumu umožňuje maloobchodníkom, spotrebiteľom a servisným zástupcom identifikovať, kedy bol produkt vyrobený, a teda aj vek produktu. Juliánske dátumy sa používajú aj v programovaní, armáde a astronómii. Rôzne […]

Ako vytvoriť Access Web App

Ako vytvoriť Access Web App

V Accesse 2016 môžete vytvoriť webovú aplikáciu. Čo je to teda webová aplikácia? Web znamená, že je online a aplikácia je len skratka pre „aplikáciu“. Vlastná webová aplikácia je online databázová aplikácia, ku ktorej sa pristupuje z cloudu pomocou prehliadača. Vytvárate a udržiavate webovú aplikáciu vo verzii pre počítače […]

Panel rýchleho spustenia v SharePointe 2010

Panel rýchleho spustenia v SharePointe 2010

Väčšina stránok v SharePointe 2010 zobrazuje zoznam navigačných prepojení na paneli Rýchle spustenie pozdĺž ľavej strany stránky. Panel Rýchle spustenie zobrazuje prepojenia na odporúčaný obsah lokality, ako sú zoznamy, knižnice, lokality a publikačné stránky. Panel Rýchle spustenie obsahuje dva veľmi dôležité odkazy: Odkaz na celý obsah lokality: […]

Čo znamenajú chybové hlásenia v programe Excel?

Čo znamenajú chybové hlásenia v programe Excel?

Pre jednoduché problémy Riešiteľ v Exceli zvyčajne rýchlo nájde optimálne hodnoty premennej Riešiteľ pre cieľovú funkciu. V niektorých prípadoch má však Riešiteľ problém nájsť hodnoty premennej Riešiteľ, ktoré optimalizujú cieľovú funkciu. V týchto prípadoch Riešiteľ zvyčajne zobrazí hlásenie alebo chybové hlásenie, ktoré popisuje alebo diskutuje problém, ktorý […]