VBA - Otevírání a používání editoru jazyka Visual Basic (VBE) v aplikaci Excel

Tento tutoriál vám ukáže, jak otevřít a programovat v editoru jazyka Visual Basic ve VBA.

Otevření editoru jazyka Visual Basic

V aplikaci Excel existuje několik způsobů, jak získat přístup k editoru jazyka Visual Basic (VBE).

lis Alt + F11 na vaší klávesnici.

NEBO

Klikněte Zobrazit> Makra> Zobrazit makra. Odtud můžete Upravit existující makro nebo Vytvořit nový. Každá možnost otevře editor VB.

NEBO

Vývojář> Visual Basic

Poznámka: Pokud Vývojářskou pásku nevidíte, budete ji muset povolit.

Chcete -li povolit pás karet pro vývojáře

Klikněte na Soubor na pásu karet a přejděte dolů na Možnosti. V Přizpůsobte stuhu možnosti, zaškrtněte Vývojář zaškrtávací políčko. Tato možnost je ve výchozím nastavení vypnutá, takže ji budete muset zapnout, abyste viděli kartu na pásu karet.

Klikněte OK.

Na hlavním pásu karet se zobrazí karta Vývojář. Kliknutím na Visual Basic na začátku pásu karet se dostanete do editoru jazyka.

Pochopení obrazovky VBE

Obrazovka VBE je zobrazena na obrázku níže.

Průzkumník projektu

Průzkumník projektů vám umožňuje zjistit, jak je organizován projekt, ve kterém pracujete. Můžete vidět, kolik modulů a formulářů je uloženo v projektu, a můžete se pohybovat mezi těmito moduly a formuláři. V modulu je uložen kód ve vašem sešitu, když zaznamenáte makro, bude uloženo ve standardním modulu - který bude ve výchozím nastavení pojmenován „Modul 1 ‘.

Každý z listů v souboru aplikace Excel má za sebou také modul, stejně jako samotný sešit. Když vložíte nový list do sešitu přes hlavní obrazovku aplikace Excel, v Průzkumníku projektů se zobrazí další modul listu.

Poklepáním na modul přejdete na kód pro tento modul.

Můžete také kliknout na nabídku Okno na panelu nástrojů a vybrat modul, který chcete přesunout na kód pro tento modul.

Typ modulů

Moduly jsou uspořádány do 5 různých typů.

  1. Standardní moduly - většina vašeho kódu půjde do tohoto typu modulu. Když zaznamenáte makro, vloží se do standardního modulu. Když napíšete obecný postup, který se má použít v celém sešitu, normálně se také přejde do standardního modulu.
  2. Moduly sešitu - tento modul obsahuje kód, který je pro daný sešit jedinečný. Většina kódu v těchto typech modulů je známá jako UDÁLOSTI. K události může dojít například při otevření nebo zavření sešitu. Modul může také obsahovat kód, který si napíšete sami a který používají události.
  3. Moduly listů - tento modul obsahuje kód, který je pro daný list jedinečný. Mohou k nim dojít například při kliknutí na list ( Klikněte na Událost), nebo když měníte data v buňce. Tento modul může také obsahovat kód, který si napíšete sami a který volá událost.
  4. Moduly formulářů - toto je modul za vlastním formulářem, který můžete vytvořit. Můžete například vytvořit formulář pro uložení podrobností k faktuře. Tlačítko OK obsahuje kód za tlačítkem (událost kliknutí) kód, který se spustí po kliknutí na tlačítko.
  5. Moduly třídy - tento modul slouží k vytváření objektů za běhu. Modul třídy používají pokročilí programátoři VBA a budou probrány v pozdější fázi.

Vložení modulu nebo formuláře do kódu

Chcete -li do kódu vložit nový modul, klikněte na Vložit na liště nabídek a klikněte na Modul.

Nebo klikněte na Vložte modul tlačítko, které najdete na standardním pásu karet.

Chcete -li do kódu vložit nový uživatelský formulář, vyberte UserForm volba.

Ve formuláři se objeví nový uživatelský formulář Průzkumník projektů a zobrazí se v okně kódu vpravo.

Můžete také vložit a Modul třídy

Modul třídy se používá k vkládání objektů do vašeho projektu VBA.

Odebrání modulu nebo formuláře z Průzkumníka projektů

Kliknutím pravým tlačítkem na modul nebo formulář, který chcete odebrat, se zobrazí kontextová nabídka pravým tlačítkem.

Klikněte Odstranit (v tomto případě UserForm1… )

NEBO

Klikněte na Soubor nabídku a poté klikněte na Odebrat (UserForm1).

Zobrazí se varovné okno s dotazem, zda chcete formulář nebo modul exportovat, než jej odeberete. Export formuláře nebo modulu vám umožní uložit jej jako samostatný soubor pro použití v jiném projektu aplikace Excel v jiném čase.

Když modul nebo formulář odeberete, je to častěji, protože to nepotřebujete, takže klikněte na Ne.

Okno vlastností

Pod oknem uvidíte okno vlastností Průzkumník projektů. Možná to budete muset zapnout.

lis F4 nebo klikněte Pohled, Okno vlastností.

Okno vlastností vám umožňuje zobrazit vlastnosti pro konkrétní modul nebo formulář, který je vybrán v Průzkumník projektů. Když pracujete v modulech, můžete pomocí okna vlastností změnit název modulu. Toto je jediná vlastnost dostupná pro modul. Když však pracujete s formuláři, bude k dispozici mnohem více vlastností a okno Vlastnosti se pak ve velké míře používá k ovládání chování formulářů a ovládacích prvků obsažených ve formuláři.

Když zaznamenáte makro, automaticky se vloží do standardního modulu. Modul bude mít název „Modul 1 ‘ a jakýkoli kód obsažený v tomto modulu je k dispozici pro použití v celém projektu. Modul byste měli přejmenovat na něco důležitého, co by usnadnilo nalezení kódu, pokud byste do projektu přidali více modulů.

Formuláře můžete také přejmenovat.

Pokud jste v Excelu přejmenovali list, název listu se zobrazí jako název listu v závorkách za Listem1.

Pokud chcete změnit název modulu za listem, můžete jej změnit stejným způsobem, jakým změníte název modulu a uživatelského formuláře - změnou vlastnosti Název v okně Vlastnosti.

Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!

Okno s kódem

Okno kódu vám ukazuje dílčí postupy a funkce obsažené ve vašich modulech - ukazuje vám skutečný kód. Když zaznamenáváte makro, vytvoří se pro vás dílčí procedura. Pokud do makra přidáte klávesovou zkratku, zobrazí se v makru jako komentář, abyste věděli, jaká je klávesová zkratka, kterou jste makru přiřadili.

V horní části okna kódu jsou dvě pole se seznamem. Ty vám umožňují zjistit, který objekt (pokud existuje) v rámci modulu, na kterém možná pracujete, a na jakém postupu možná pracujete.

Ve výše uvedeném příkladu nepracujeme na žádném objektu - tím je nastaveno obecné, ale pracujeme v rámci procedury Gridlines.

Pokud bychom v tomto modulu měli více než jednu proceduru, mohli bychom použít pole se seznamem výše k navigaci k dalším procedurám.

Porozumění Kodexu

Existují 2 typy postupů - Dílčí postupy a Funkční postupy.

Dílčí postupy

Makro rekordér může zaznamenávat pouze dílčí postupy. Sub procedura dělá věci. Provádějí akce, jako je formátování tabulky nebo vytvoření kontingenční tabulky nebo v příkladu mřížky změna nastavení zobrazení vašeho aktivního okna. Většina písemných postupů jsou dílčí postupy. Všechna makra jsou dílčí postupy.

Dílčí procedura začíná a Sub prohlášení a končí příponou End Sub tvrzení. Za názvem postupu jsou vždy závorky.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalseEnd Sub

Funkční postupy

Procedura funkce vrací hodnotu. Tato hodnota může být jedna hodnota, pole, rozsah buněk nebo objekt. Funkce obvykle provádějí nějaký typ výpočtu. Funkce v Excelu lze použít s Průvodcem funkcí nebo je lze volat z dílčích procedur.

123 Funkce Kilos (libry jako dvojnásobek)Kilo = (libry/2,2)Koncová funkce

Tuto funkci lze použít v dialogovém okně Vložit funkci v aplikaci Excel k převodu liber na kilogramy.

Vytvoření nového postupu

Před vytvořením nové procedury se ujistěte, že jste v modulu, do kterého chcete proceduru uložit. Nový postup můžete vytvořit kliknutím na nabídku Vložit, Procedura;

nebo můžete kliknout na ikonu na panelu nástrojů

Zobrazí se následující dialogové okno

  1. Do pole pro název zadejte název vaší nové procedury - ta musí začínat písmenem abecedy a může obsahovat písmena a číslice a může mít maximálně 64 znaků.
  2. Můžete mít a Dílčí postup, a Funkční postup nebo a Vlastnictví postup. (Vlastnosti se používají v modulech Class a nastavují vlastnosti pro ovládací prvky ActiveX, které jste možná vytvořili).
  3. Rozsah postupu můžete také nastavit Veřejnost nebo Soukromý. Pokud je procedura veřejná (výchozí), pak ji mohou použít všechny moduly v projektu, zatímco pokud je procedura soukromá, bude ji moci použít pouze tento modul.
  4. Místní proměnné v tomto postupu můžete deklarovat jako Statics (to má co dělat s rozsahem proměnné a dělá proměnnou na úrovni místního postupu veřejnou pro celý modul). Tuto možnost nevyužijeme.

Až vyplníte všechny relevantní údaje, klikněte na OK.

Potom zadejte svůj kód mezi příkazy Sub a End Sub.

ALTERNATIVNĚ - Příkazy Sub a End Sub můžete ve svém modulu zadat přesně tak, jak je uvedeno výše. Před slovo sub nemusíte vkládat slovo Public - pokud toto slovo vynecháte, všechny procedury v modulu se automaticky považují za veřejné.

Pak napiš Sub a poté název vaší procedury následovaný závorkou.

tj:

1 Dílčí test ()

The End Sub výpis se zobrazí automaticky.

Programování VBA | Generátor kódu pracuje pro vás!

Psaní kódu, který je snadno pochopitelný a navigovatelný

Přidávání komentářů

Zvykněte si vkládat do kódu komentáře, abyste si v pozdější fázi připomněli funkčnost kódu.

Do kódu můžete vložit komentář, ale napsat apostrof na klávesnici, nebo můžete zapnout panel nástrojů Upravit a použít tlačítko komentáře, které se zobrazí na tomto panelu nástrojů.

Klepněte pravým tlačítkem na panely nástrojů.

Vybrat Upravit.

Kliknutím na tlačítko komentáře vložíte komentář do svého kódu.

POZNÁMKA: Tlačítko bloku komentáře obvykle používáte pouze v případě, že máte několik řádků kódu, které chcete okomentovat (a nikoli odstranit). Pro jeden komentář je snazší použít apostrof.

Odsazení

Dobrým zvykem, do kterého se dostanete, je odsazení kódu, který vám usnadní čtení kódu a prohlížení různých částí kódu.

V závislosti na logice kódu může existovat mnoho úrovní odsazení.

UpperCase vs LowerCase

VBA upraví veškerý kód na správný případ, takže pokud zadáte VŠECHNY VE VELKÝCH PÍSMECH nebo všechna malá písmena, upraví váš kód tak, aby byl ve správném případě!

Programování VBA | Generátor kódu pracuje pro vás!

Automatické dokončování

Když upravíte kód, všimnete si, že se vám VBA snaží pomoci tím, že navrhne kód, který můžete zadat. Toto je známé jako automatické dokončování.

Chyba při přesouvání a ladění

Při psaní kódu VBA mohou nastat 4 typy chyb - chyby syntaxe, chyby kompilace, chyby runtime a logické chyby.

Chyby syntaxe

K nim dochází, když kód napíšete nesprávně. VBA tomu do značné míry brání tím, že má zapnutou možnost kontroly syntaxe. Toto je ve výchozím nastavení zapnuto, ale pokud je vypnuto, zapněte jej přechodem na Nástroje, Možnosti a klikněte Automatická kontrola syntaxe.

Pokud zadáte kód nesprávně (například vyjmete něco, co by mělo být v kódu), při psaní kódu se objeví okno se zprávou, které vám dává možnost kód upravit.

Chyby kompilace

K nim dochází, když v kódu něco chybí, což brání spuštění kódu. Chyba se neobjeví při psaní kódu, ale nastane při pokusu a spuštění kódu.

Programování VBA | Generátor kódu pracuje pro vás!

Chyby runtime

K nim dochází při spuštění kódu a syntaxe a kompilace je správná, ale dochází k něčemu jinému, aby se zabránilo správnému spuštění kódu.

V tomto případě list 4 neexistuje. Tato chybová zpráva je užitečnější než kompilace chybových zpráv, protože vám dává možnost ladit kód a zjistit, proč nefunguje.

Klikněte Ladit. Kód se zastaví u chyby a zvýrazní chybu žlutě, což vám umožní chybu opravit.

Upravte list4 na list2 (protože list 2 existuje a list 4 neexistuje).

lis F5 nebo klikněte na Pokračovat tlačítko na panelu nástrojů.

Logické chyby

Ty se hledají nejobtížněji. V jejich případě je kód napsán správně, ale skutečná logika kódu je chybná, takže z kódu možná nedostanete požadovaný výsledek. U logických chyb je zásadní chycení chyb.

Existují 2 typy pastí chyb

Při chybě Přejít na

Následující kód má otevřít dialogové okno Otevřít soubor - pokud uživatel klikne, zobrazí se chyba zrušení.

Po spuštění kódu se zobrazí dialogové okno Otevřít soubor.

Když potom kliknete na Storno, dojde k chybě.

Následující chybová past bude pokračovat kódem do funkce Konec kódu a vrátí zprávu.

To využívá funkci On Error GoTo k ukončení funkce.

Když spustíte kód a kliknete na Storno, zobrazí se okno se zprávou.

Při chybě Pokračovat Další

Pokud dáte Při chybě Pokračovat Další Prohlášení do kódu, řádek obsahující chybu bude ignorován a kód bude pokračovat.

Pokud například uživatel v níže uvedeném kódu klikne na Zrušit, kód vám chybu běhu nezobrazí, ale skončí, aniž by kód dělal cokoli dalšího.

Jsou chvíle, kdy je to velmi užitečné, ale za určitých okolností to může být také velmi nebezpečné, protože nevrací zprávu o tom, proč se vám zobrazila chyba.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave