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

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » Jak-spoustet-sub-procerury-VBA-Excel
Microsoft Excel logo

Jak spouštět procedury ve VBA Excel

Videokurzy Excel

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

Jaké máte možnosti na spuštění procedury ve VBA. Aneb seznam který se může hodit.

Úvodem do spuštění procedur

V tomto článku se dozvíte jaké máte možností spouštění procedur ve VBA. Pro přehlednost je článek rozdělen na kapitoly:

Jednotlivé možností, které si dále rozebereme:

Další kapitoly:


Vytvoření procedury

Ať můžete testovat, potřebujete mít ve VBA k dispozici proceduru (kód) který budete spouštět. Stačí spustit VBA editor z menu Vývojář - Visual Basic, nebo rychleji klávesovou zkratkou Alt+F11 (nebo pokud zatím nemáte zobrazenou kartu Vývojář alias Developer v angličtině).

Předpokladem je v Editoru VBA sekci Module. Nemate-li vytvoříte klik na Insert > Module a nad vyloženým Module1 klik a v pravém okně vložit kód.

Sub Pozdrav() MsgBox ("Ahoj Světe.") End Sub

Poznámka: Jak funguje editor VBA je sepsáno v jiné kapitole.

Jde o jednoduchou proceduru, která využitím MsgBox (dialogové okno) vypíše pozdrav „Ahoj světe“ do dialogového okna. Tato procedura se jmenuje Pozdrav.

Vložneí procedury - Spouštění procedur - VBA Excel

Tip zelený text je jenom poznámka, ten psát nemusíte (více v kapitole o struktuře kódu).

Pokud máte hotovo. Můžeme jít testovat možností spuštění.

Seznam možností spouštění

Mate-li vytvořenou proceduru (kód) potřebujete jej spustit. Pojďme se podívat jaké máte možností spuštění, na výběr máte:

  1. Přímo z VBA
  2. Z maker
  3. Klávesová zkratka
  4. Volání z tlačítka
  5. Volání z objektu
  6. Volání z jiné procedury
  7. Z vlastního menu
  8. Jako reakce na událost
  9. Z okna Immediate

(1) Přímo z VBA editoru

První asi nejčastěji používanou metodou je spouštět kód přímo z editoru VBA využitím klávesové zkratky F5. Případně můžete ve VBA editoru v menu kliknou na zelený trojúhelník.

Spouštění procedur - VBA Excel

Nebo pomaleji v menu klik na Run a Run Sub/UserForm.

Tip: Zde můžete provést i Reset, případně přerušit běh programu, zde je ale nejlépe si zapamatovat zkratku Ctrl+Break (najděte jak ve vašem PC stisknete). V kapitole "debugování" se dozvíte jak spouštět kód postupně a hledat chyby.

(2) Z ikony Maker v pásu karet

Další možnosti jak vaši proceduru (makro) spustit je z Excelu přes ikonu Makra (Macros v angličtině) v pásu karet Vývojář (Developer). Nebo klávesová zkratka Alt + F8

Developer - Spouštění procedur - VBA Excel

V dialogovém okně jen vyberete makro, které chcete spustit. Ve výběrovém políčko Makra v (Macros in) můžete vybrat Tento sešit (This Workbook), ať máte seznam přehlednější.

Makra - Spouštění procedur - VBA Excel

(3) Klávesová zkratka

Pokud jste makru přiřadili klávesovou zkratku, přes dialogové okno Makra (Macros) z pásu karet Vývojář. Případně Alt+F8.

Developer - Spouštění procedur - VBA Excel

V zobrazeném dialogovém okně přes Možnosti... (Options...) nastavit klávesovou zkratku.

Tip: Nastavte takovou které se nebude plést s jinou, například pro zvětšení obrazovky u programu ZoomIt atd.

Klávesová zkratka - Spouštění procedur - VBA Excel

Následně již možnost spuštění Ctrl + Shift + M.

(4) Volání z tlačítka nebo jiného objektu ActiveX objektu

Další možností je přidat na list tlačítko ActiveX, kterému přiřadíte kód na spuštění procedury. Následně klikem na tlačítko (pokud nejste v režimu návrhu), můžete makro spustit.

Tlačítko vložíte na list. Z pásu karet Vývojář (Developer) zapnout Režim návrhu (Design Mode). Vyberete tlačítko a vložíte na list.

Následně dvojklik na tlačítko, otevře se vám editor VBA a zde do prostoru kurzoru vložíte kód

Call Pozdrav

Nebo-li po kliku na tlačítko uvidíte v editoru dva řádky kódu, týkající se tlačítka a uprostřed bliká kurzor:

Private Sub CommandButton1_Click() End Sub

Výsledek tedy bude vypadat:

Private Sub CommandButton1_Click() Call Pozdrav End Sub

Pokud vás napadne, zda se dají voláním předávat i parametry, potěším vás, dají, ale o tom v jiném článku, předávání parametru funkcím a procedurám.

Spouštění procedur - VBA Excel

(5) Volání z objektu - obrazce, nebo starší verze formulářových prvků

Pokud máte na listě grafický objekt (může jít o tlačítko ze starší verze formulářů, které se chová jako graficky objekt) třeba čtvereček.

Přes pravé tlačítko nad objektem a vybrat Přiřadit makro (Assing Macro...).

Spouštění procedur - VBA Excel

V zobrazeném dialogovém okně vyberete makro Přiřadit makro, které chcete spustit a klik na OK

Spouštění procedur - VBA Excel

Pak jen stačí klik na obrazec a opět dojde ke spuštění makra.

Tip: Nové formuláře ActiveX, máte popsány v předchozím odstavci.

(6) Volání z jiné procedury

Po předchozím odstavci vás napadne, že makro můžete volat i z jiné procedury. Máte pravdu. Například do Module1 vložíte proceduru:

Sub PozdravNovy() Call Pozdrav End Sub

A můžete otestovat spouštění například přes trojúhelníček ;)

Spouštění procedur - VBA Excel

(7) Z vlastního menu

Další možností je vytvořit si vlastní menu (v samostatném článku jak na tvorbu vlastního menu) a z tohoto menu proceduru spouštět.

V Module1 tlačítku přiřadíte kód:

Sub Pozdrav(control As IRibbonControl) MsgBox ("Funguje!") End Sub

Samozřejmě, že tlačítko v pásu karet musí být správně nastaveno. V této části nepůjdu do podrobnosti, jen vám doporučím článek Vlastní pás karet Ribbon.

(8) Jako reakce na událost

Makro se může spouštět na základě události, ať už při práci se sešitem, listem, formulářem. Více v článku o událostech, zde si ukážeme, že pozdrav budete chtít zobrazit po spuštění sešitu.

Kód stačí doplnit do sekce ThisWorkbook kód:

Private Sub Workbook_Open() Call Pozdrav End Sub Události - Spouštění procedur - VBA Excel

Následně po uložení a novém spuštění souboru obdržíte pozdrav.

Tip: někdy bude potřeba povolit makra.

(9) Z okna Immediate

Poslední možností je spouštění procedury v okně Immediate (ladicí okno). Stačí zadat Call a název procedury

Call Pozdrav Immediate okno - Spouštění procedur - VBA Excel

Předávání parametru

Procedurám se dají předávat i parametry, ale o tom v jiném článku.

Související články

související články, které již jsou sepsány:

Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor ke stažení zdarma je v přípravě. Podpořit zveřejnění můžete podporou na Patreon.


Závěrem

Narazili jste na nějaký problém, máte tip, můžete se zmínit v komentářích.

Článek byl aktualizován: 15.09.2021 07:47

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 zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.







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 |