Excel VBA kódování: Práce s oknem kódu

Jak se naučíte používat Excel VBA, strávíte spoustu času prací v oknech kódu. Makra, která zaznamenáte, jsou uložena v modulu a kód Excel VBA můžete zadat přímo do modulu VBA.

Minimalizace a maximalizace oken kódu VBA

Pokud máte otevřených několik projektů, může mít VBE v kteroukoli danou chvíli mnoho oken kódu.

Excel VBA kódování: Práce s oknem kódu

Přetížení okna kódu není hezký pohled.

Okna kódu jsou podobná oknům sešitů v Excelu. Můžete je minimalizovat, maximalizovat, měnit jejich velikost, skrýt je, přeskupit a tak dále. Pro většinu lidí je mnohem snazší maximalizovat okno Kód, na kterém pracují. Díky tomu uvidíte více kódu a nebudete se rozptylovat.

Chcete-li maximalizovat okno Kód, klepněte na tlačítko Maximalizovat v jeho záhlaví (hned vedle X). Nebo jen dvakrát klikněte na jeho záhlaví, abyste jej maximalizovali. Chcete-li obnovit okno Kód do původní velikosti, klikněte na tlačítko Obnovit. Když je okno maximalizované, jeho záhlaví není vidět, takže pod záhlavím VBE najdete tlačítko Obnovit.

Někdy můžete chtít mít viditelná dvě nebo více oken kódu. Můžete například chtít porovnat kód ve dvou modulech nebo zkopírovat kód z jednoho modulu do druhého. Okna můžete uspořádat ručně nebo výběrem možnosti Okno → Dlaždice vodorovně nebo Okno → Dlaždice svisle je uspořádat automaticky.

Mezi okny kódu můžete rychle přepínat stisknutím Ctrl+F6. Pokud tuto kombinaci kláves zopakujete, budete neustále procházet všemi otevřenými okny kódu. Stisknutím kláves Ctrl+Shift+F6 můžete cyklicky procházet okny v opačném pořadí. (Další informace naleznete v těchto klávesových zkratkách Excel VBA .)

Minimalizace okna s kódem ho znemožní. Okno můžete zavřít také kliknutím na tlačítko Zavřít okna (které zobrazuje X) v záhlaví okna Kód. (Zavřením okno pouze skryjete; o nic nepřijdete.) Chcete-li jej znovu otevřít, poklepejte na příslušný objekt v okně Projekt. Mimochodem, práce s těmito okny Code zní obtížněji, než ve skutečnosti je.

Vytvoření modulu VBA

Obecně platí, že modul Excel VBA může obsahovat tři typy kódu:

  • Prohlášení: Jedno nebo více informačních prohlášení, které poskytnete VBA. Můžete například deklarovat datový typ pro proměnné, které plánujete použít, nebo nastavit některé další možnosti pro celý modul. Prohlášení jsou v podstatě prohlášení o hospodaření. Ve skutečnosti nejsou popraveni.
  • Dílčí procedury: Sada programovacích instrukcí, které po provedení provedou nějakou akci.
  • Funkční procedury: Sada programovacích instrukcí, která vrací jednu hodnotu (koncept podobná funkci listu, jako je SUM).

Jeden modul VBA může uložit libovolný počet procedur Sub, procedur funkcí a deklarací. No, tam je limit - asi 64.000 znaků na modulu. Je nepravděpodobné, že se k limitu 64 000 znaků ani přiblížíte. Ale pokud ano, řešení je jednoduché: Stačí vložit nový modul.

Jak si uspořádáte modul VBA, je zcela na vás. Někteří lidé dávají přednost tomu, aby si celý svůj kód VBA pro aplikaci ponechali v jediném modulu VBA; jiní rádi rozdělují kód do několika modulů. Je to osobní volba, stejně jako uspořádání nábytku.

Získání kódu VBA do modulu

Prázdný modul VBA je jako falešné jídlo, které vidíte ve výlohách některých čínských restaurací; vypadá to dobře, ale ve skutečnosti vám to moc nejde. Než budete moci dělat něco smysluplného, ​​musíte mít v modulu VBA nějaký kód VBA. Kód VBA můžete do modulu VBA získat třemi způsoby:

  • Zadejte kód přímo.
  • Pomocí záznamníku maker Excel zaznamenejte své akce a převeďte tyto akce na kód VBA.
  • Zkopírujte kód z jednoho modulu a vložte jej do jiného.

Přímé zadání kódu Excel VBA

Někdy je nejlepší cestou ta nejpřímější. Přímé zadání kódu zahrnuje... tedy přímé zadání kódu. Jinými slovy, zadáváte kód pomocí klávesnice. Zadávání a úpravy textu v modulu VBA fungují tak, jak byste mohli očekávat. Text můžete vybírat, kopírovat, vyjímat, vkládat a dělat s ním další věci.

Pomocí klávesy Tab odsaďte některé řádky, aby byl kód snáze čitelný. Odsazení není nutné, ale je dobrým zvykem si ho pořídit. Při studiu kódování Excel VBA pochopíte, proč je užitečné odsazování řádků kódu.

Jeden řádek kódu VBA může být tak dlouhý, jak potřebujete. Můžete však chtít použít znaky pro pokračování řádku k rozdělení dlouhých řádků kódu. Chcete-li pokračovat na jednom řádku kódu (známém také jako příkaz) z jednoho řádku na druhý, ukončete první řádek mezerou a podtržítko (_). Poté pokračujte ve výroku na dalším řádku. A nezapomeňte na prostor. Znak podtržítka, kterému nepředchází mezera, nebude fungovat.

Zde je příklad jednoho příkazu rozděleného do tří řádků:

Selection.Sort Key1:=Range("A1"), _
  Order1:=xlAscending, Header:=xlHádej, _
  Orientace:=xlTopToBottom

Tento příkaz by fungoval úplně stejně, pokud by byl zadán na jednom řádku (bez znaků pro pokračování řádku). Všimněte si, že druhý a třetí řádek tohoto prohlášení jsou odsazeny. Odsazení je volitelné, ale pomáhá objasnit skutečnost, že tyto řádky nejsou samostatnými příkazy.

Inženýři v bílém plášti, kteří navrhli VBE, předpokládali, že lidé budou dělat chyby. Proto má VBE více úrovní zpět a znovu. Pokud jste odstranili příkaz, který byste neměli mít, klikněte na tlačítko Zpět na panelu nástrojů (nebo stiskněte Ctrl+Z), dokud se příkaz znovu nezobrazí. Po vrácení můžete kliknout na tlačítko Znovu a provést změny, které jste vrátili.

Jste připraveni zadat nějaký reálný kód? Zkuste následující kroky:

Vytvořte nový sešit v Excelu.

Stisknutím Alt+F11 aktivujte VBE.

Klepněte na název nového sešitu v okně Projekt.

Zvolte Vložit → Modul pro vložení modulu VBA do projektu.

Do modulu zadejte následující kód:

Sub GuessName()
Msg = "Je vaše jméno " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then MsgBox "Oh, nevadí."
If Ans = vbYes Then MsgBox "Musím být psychická!"
End Sub

Umístěte kurzor kamkoli do textu, který jste napsali, a stisknutím klávesy F5 spusťte postup.

F5 je zkratka pro Spustit → Spustit Sub/UserForm. Pokud jste kód zadali správně, Excel provede proceduru a vy můžete reagovat na jednoduché dialogové okno. Text v dialogovém okně se bude lišit od zde zobrazeného textu.

Excel VBA kódování: Práce s oknem kódu

Toto dialogové okno zobrazí procedura GuessName.

Když zadáte kód uvedený v kroku 5, můžete si všimnout, že VBE provádí určité úpravy zadávaného textu. Například po zadání příkazu Sub VBE automaticky vloží příkaz End Sub. A pokud vynecháte mezeru před nebo za rovnítkem, VBE mezeru vloží za vás. VBE také změní barvu a velká písmena některého textu. To vše je naprosto normální. Je to jen způsob VBE, jak udržet věci čisté a čitelné.

Pokud jste postupovali podle předchozích kroků, právě jste napsali proceduru VBA Sub, známou také jako makro. Když stisknete F5, Excel spustí kód a bude postupovat podle pokynů. Jinými slovy, Excel vyhodnotí každý příkaz a udělá to, co jste mu řekli. (Nenechte si tuto nově objevenou sílu stoupnout do hlavy.) Toto makro můžete spustit libovolně mnohokrát – i když má tendenci ztrácet svou přitažlivost po několika desítkách pokusů.

Pro záznam, toto jednoduché makro Excel používá následující koncepty:

  • Definování procedury Sub (první řádek)
  • Přiřazení hodnot proměnným (Msg a Ans)
  • Zřetězení (spojení) řetězce (pomocí operátoru &)
  • Použití vestavěné funkce VBA (MsgBox)
  • Použití vestavěných konstant VBA (vbYesNo, vbNo a vbYes)
  • Použití konstrukce If-Then (dvakrát)
  • Ukončení procedury Sub (poslední řádek)

Použití záznamníku maker Excel VBA

Dalším způsobem, jak můžete získat kód do modulu VBA, je zaznamenávání vašich akcí pomocí záznamníku maker Excel.

Mimochodem, neexistuje absolutně žádný způsob, jak zaznamenat postup GuessName zobrazený výše. Můžete zaznamenávat pouze věci, které můžete dělat přímo v Excelu. Zobrazení okna se zprávou není v běžném repertoáru Excelu. (Je to věc VBA.) Makrorekordér je užitečný, ale v mnoha případech budete pravděpodobně muset zadat alespoň nějaký kód ručně.

Zde je podrobný příklad, který ukazuje, jak zaznamenat makro, které vloží nový list a skryje všechny řádky kromě prvních deseti a všechny kromě prvních deseti sloupců. Chcete-li vyzkoušet tento příklad, začněte s novým, prázdným sešitem aplikace Excel a postupujte takto:

Aktivujte list v sešitu.

Postačí jakýkoli excelový list.

Klikněte na kartu Vývojář a ujistěte se, že není zvýrazněno Použít relativní odkazy .

Toto makro je zaznamenáno pomocí Absolute References.

Vyberte Vývojář → Kód → Nahrát makro nebo klikněte na ikonu vedle indikátoru Připraveno na levém konci stavového řádku.

Excel zobrazí dialogové okno Záznam makra.

V dialogovém okně Záznam makra pojmenujte makro TenByTen, určete, že chcete makro uložit do tohoto sešitu, a stiskněte Shift+T pro klávesovou zkratku.

Makro lze spustit stisknutím Ctrl+Shift+T.

Klepnutím na OK zahájíte nahrávání. Excel automaticky vloží do projektu nový modul VBA, který odpovídá aktivnímu sešitu.

Od tohoto okamžiku Excel převede vaše akce na kód VBA. Během nahrávání se ikona ve stavovém řádku změní na malý čtvereček. Toto je připomínka, že je spuštěn záznam maker. Záznam maker můžete také zastavit kliknutím na tuto ikonu.

Klepněte na ikonu Nový list napravo od poslední karty listu.

Excel vloží nový list.

Vyberte celý sloupec K (11. sloupec) a stiskněte Ctrl+Shift+šipka vpravo; potom klepněte pravým tlačítkem na libovolný vybraný sloupec a z místní nabídky vyberte Skrýt.

Excel skryje všechny vybrané sloupce.

Vyberte celý řádek 11 a stiskněte Ctrl+Shift+šipka dolů; potom klepněte pravým tlačítkem na libovolný vybraný řádek a v místní nabídce vyberte příkaz Skrýt.

Excel skryje všechny vybrané sloupce.

Vyberte buňku A1.

Vyberte Vývojář → Kód → Zastavit nahrávání nebo klikněte na tlačítko Zastavit nahrávání na stavovém řádku (malý čtvereček). Excel přestane zaznamenávat vaše akce.

Chcete-li zobrazit toto nově zaznamenané makro, stiskněte Alt+F11 pro aktivaci VBE. V okně projektu vyhledejte název sešitu. Vidíte, že projekt má uveden nový modul. Název modulu závisí na tom, zda jste při zahájení záznamu makra měli v sešitu nějaké další moduly. Pokud tak neučiníte, modul se jmenuje Module1. Dvojitým kliknutím na modul zobrazíte okno Kód pro modul.

Zde je kód vygenerovaný vašimi akcemi:

Sub TenByTen()
'
Makro TenByTen
'
' Klávesová zkratka: Ctrl+Shift+T
'
  Sheets.Add After:=ActiveSheet
  Columns("K:K").Vyberte
  Rozsah(Výběr, Výběr.Konec(xlDoprava)).Vybrat
  Selection.EntireColumn.Hidden = Pravda
  Řádky("11:11").Vyberte
  Rozsah(Výběr, Výběr.Konec(xlDolů)).Výběr
  Selection.EntireRow.Hidden = Pravda
  Rozsah("A1").Vyberte
End Sub

Chcete-li toto makro vyzkoušet, aktivujte libovolný list a stiskněte klávesovou zkratku, kterou jste přiřadili v kroku 4: Ctrl+Shift+T.

Pokud jste makru nepřiřadili klávesovou zkratku, nemějte obavy. Zde je návod, jak zobrazit seznam všech dostupných maker a spustit to, které chcete:

Vyberte Vývojář → Kód → Makra. Fanoušci klávesnice mohou stisknout Alt+F8.

Každá z těchto metod zobrazí dialogové okno se seznamem všech dostupných maker.

Vyberte makro v seznamu (v tomto případě TenByTen).

Klepněte na tlačítko Spustit.

Excel spustí makro a získáte nový list s deseti viditelnými řádky a deseti viditelnými sloupci.

Když je záznam maker spuštěn, můžete provádět libovolný počet příkazů a provádět libovolný počet akcí. Excel poslušně převádí vaše akce myši a stisky kláves do kódu VBA.

A makro můžete samozřejmě po nahrání také upravit. Chcete-li otestovat své nové dovednosti, zkuste upravit makro tak, aby vložilo list s devíti viditelnými řádky a sloupci – ideální pro puzzle Sudoku.

Kopírování kódu VBA

Poslední metodou pro získání kódu do modulu VBA je jeho zkopírování z jiného modulu nebo z nějakého jiného místa (například z webu). Například procedura Sub nebo Function, kterou napíšete pro jeden projekt, může být užitečná i v jiném projektu. Místo toho, abyste ztráceli čas opětovným zadáváním kódu, můžete modul aktivovat a použít běžné postupy kopírování a vkládání do schránky. (Pravděpodobně máte spíše rádi klávesové zkratky Ctrl+C pro kopírování a Ctrl+V pro vkládání.) Po vložení kódu do modulu VBA můžete kód v případě potřeby upravit.

Mimochodem, na webu najdete spoustu příkladů kódu VBA. Pokud je chcete vyzkoušet, vyberte kód ve svém prohlížeči a zkopírujte jej stisknutím Ctrl+C. Poté aktivujte modul a stisknutím Ctrl+V jej vložte.

Když zkopírujete kód z webu, někdy to vyžaduje nějakou opravu. Znaky uvozovek mohou být například „chytré uvozovky“ a musí být převedeny na jednoduché uvozovky. A někdy se kolem toho namotají dlouhé fronty. Chybná prohlášení jsou ve VBE snadno rozpoznatelná, protože se zobrazují červeně.


Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows Aplikace Microsoft Word otevírá soubory v režimu pouze pro čtení, takže je nelze upravovat? Nebojte se, metody jsou uvedeny níže

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit chyby při tisku nesprávných dokumentů Microsoft Word Chyby při tisku dokumentů Word se změněným písmem, chaotickými odstavci, chybějícím textem nebo ztraceným obsahem jsou poměrně časté. Nicméně ne

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Pokud jste použili pero nebo zvýrazňovač ke kreslení na snímky aplikace PowerPoint během prezentace, můžete kresby uložit pro další prezentaci nebo je vymazat, takže až ji příště ukážete, začnete s čistými snímky aplikace PowerPoint. Chcete-li vymazat kresby perem a zvýrazňovačem, postupujte podle těchto pokynů: Mazání čar jedna na […]

Obsah knihovny stylů v SharePointu 2010

Obsah knihovny stylů v SharePointu 2010

Knihovna stylů obsahuje soubory CSS, soubory XSL (Extensible Stylesheet Language) a obrázky používané předdefinovanými vzorovými stránkami, rozvržení stránek a ovládací prvky v SharePointu 2010. Chcete-li najít soubory CSS v knihovně stylů webu pro publikování: Vyberte Akce webu→ Zobrazit Veškerý obsah webu. Zobrazí se obsah webu. Knihovna stylů se nachází v […]

Formátování čísel v tisících a milionech v sestavách Excel

Formátování čísel v tisících a milionech v sestavách Excel

Nezahlcujte své publikum gargantuovskými čísly. V aplikaci Microsoft Excel můžete zlepšit čitelnost řídicích panelů a sestav formátováním čísel tak, aby se zobrazovaly v tisících nebo milionech.

Jak sdílet a sledovat weby SharePoint

Jak sdílet a sledovat weby SharePoint

Naučte se používat nástroje sociálních sítí SharePoints, které umožňují jednotlivcům a skupinám komunikovat, spolupracovat, sdílet a propojovat se.

Jak převést data do juliánských formátů v aplikaci Excel

Jak převést data do juliánských formátů v aplikaci Excel

Juliánská data se často používají ve výrobním prostředí jako časové razítko a rychlý odkaz pro číslo šarže. Tento typ kódování data umožňuje maloobchodníkům, spotřebitelům a servisním zástupcům identifikovat, kdy byl produkt vyroben, a tím i stáří produktu. Juliánská data se také používají v programování, armádě a astronomii. Odlišný […]

Jak vytvořit webovou aplikaci Access

Jak vytvořit webovou aplikaci Access

Webovou aplikaci můžete vytvořit v Accessu 2016. Co je tedy vlastně webová aplikace? Web znamená, že je online, a aplikace je jen zkratka pro „aplikaci“. Vlastní webová aplikace je online databázová aplikace přístupná z cloudu pomocí prohlížeče. Webovou aplikaci vytváříte a udržujete ve verzi pro počítače […]

Panel rychlého spuštění v SharePointu 2010

Panel rychlého spuštění v SharePointu 2010

Většina stránek v SharePointu 2010 zobrazuje seznam navigačních odkazů na panelu Snadné spuštění na levé straně stránky. Panel Snadné spuštění zobrazuje odkazy na doporučený obsah webu, jako jsou seznamy, knihovny, weby a stránky publikování. Panel Snadné spuštění obsahuje dva velmi důležité odkazy: Odkaz na veškerý obsah webu: […]

Co znamenají chybové zprávy Řešitel v Excelu?

Co znamenají chybové zprávy Řešitel v Excelu?

U jednoduchých problémů Řešitel v Excelu obvykle rychle najde optimální hodnoty proměnné Řešitel pro účelovou funkci. Ale v některých případech má Řešitel problém najít hodnoty proměnné Řešitel, které optimalizují účelovou funkci. V těchto případech Řešitel obvykle zobrazí zprávu nebo chybovou zprávu, která popisuje nebo popisuje problém, který […]