Použití záznamníku maker v aplikaci Microsoft Excel

Obsah:

Anonim

Otevřete Excel a VBE (editor jazyka). Pokud to nebylo změněno, okno VBE obsahuje Průzkumník projektů okno a Vlastnosti okno (je k nim přístup z Pohled Jídelní lístek).

Průzkumník projektů: Funguje jako správce souborů. Pomáhá vám procházet kódem v sešitu.

Okno vlastností: Ukazuje vlastnosti aktuálně aktivního objektu (např. List 1) aktuálního sešitu (např.Kniha 1).

V tomto článku se naučíme, jak snadné nahrávání makra v aplikaci Excel.

Cvičení 1: Záznam makra.

Toto cvičení ukazuje, co se stane, když je zaznamenáno makro, a ukazuje rozdíl mezi zaznamenáváním absolutních a relativních referencí.

1. Na prázdném listu v novém sešitu vyberte buňku C10

2. Spusťte Záznam makra s možností uložit makro do Tento sešit. V tomto okamžiku VBE vytvoří nový Moduly složku. Je docela bezpečné se na to podívat - vaše akce nebudou zaznamenány. Klikněte na [+] vedle složky a podívejte se, že VBE obsahuje modul ve složce a pojmenoval jej Modul 1. Poklepáním na ikonu modulu otevřete okno s kódem. Přepnout zpět do Excelu.

3. Ujistěte se, že Relativní reference tlačítko na Zastavit nahrávání panel nástrojů NENÍ stisknut.

4. Vyberte buňku B5 a zastavte rekordér.

5. Přepněte na VBE a podívejte se na kód:

Rozsah („B5“). Vyberte

6. Nyní zaznamenejte další makro, úplně stejným způsobem, ale tentokrát s Relativní reference stisknuté tlačítko.

7. Přepněte na VBE a podívejte se na kód:

ActiveCell.Offset (-5, -1). Range ("A1"). Vyberte

8. Nyní zaznamenejte další makro, ale místo výběru buňky B5 vyberte blok buněk 3x3 začínající na B5 (vyberte buňky B5: F7)

9. Přepněte na VBE a podívejte se na kód:

ActiveCell.Offset (-5, -1). Range ("A1: B3"). Vyberte

10. Přehrajte makra, nejprve vyberte jinou buňku než C10 (pro Macro2 a Macro3 musí být počáteční buňka v řádku 6 nebo níže - viz krok 11 níže)

Makro 1 - vždy přesune výběr na B5
Makro 2 - přesune výběr do buňky o 5 řádků výše a 1 sloupec nalevo od vybrané buňky.
Makro 3 - vždy vybere blok šesti buněk začínajících o 5 řádků výše a 1 sloupec nalevo od vybrané buňky.

11. Spusťte Macro2, ale vynutí chybu výběrem buňky v řádku 5 nebo výše. Makro se pokusí vybrat neexistující buňku, protože její kód mu říká, aby vybral buňku 5 řádků nad počátečním bodem, a to mimo horní část listu. lis Ladit být přenesen do části makra, která způsobila problém.

POZNÁMKA: Když je VBE v režimu ladění, řádek kódu, který způsobil problém, je zvýrazněn žlutě. Než budete moci pokračovat, musíte makro „resetovat“. Klikněte na Resetovat na panelu nástrojů VBE nebo přejděte na Spustit> Obnovit. Žluté zvýraznění zmizí a VBE vyjde z režimu ladění.

12. Je důležité pokusit se předvídat chyby uživatelů, jako je tato. Nejjednodušší způsob je upravit kód tak, aby chyby jednoduše ignoroval a přejít k dalšímu úkolu. Udělejte to přidáním řádku…

Při chybě Pokračovat Další

… Bezprostředně nad prvním řádkem makra (pod řádkem Sub Macro1 ()

13. Běh Makro 2 jako dříve, začíná příliš vysoko na listu. Tentokrát řádek, který jste zadali, říká Excelu, aby ignoroval řádek kódu, který nemůže spustit. Neexistuje žádná chybová zpráva a makro ukončí vše, co může. Tento způsob zpracování chyb používejte opatrně. Toto je velmi jednoduché makro. Složitější makro by pravděpodobně nefungovalo podle očekávání, kdyby byly chyby jednoduše ignorovány. Uživatel také netuší, že se něco pokazilo.

14. Upravte kód Makro 2 zahrnout sofistikovanější obslužný program chyb takto:

Sub Macro2 ()

Při chybě GoTo ErrorHandler

ActiveCell.Offset (-5, -1). Range ("A1"). Vyberte

Ukončit dílčí

ErrorHandler:

MsgBox „Musíte začít pod řádkem 5“

End Sub

15. Tentokrát se uživateli zobrazí dialogové okno, když se něco pokazí. Pokud nedojde k žádné chybě, řádek Exit Sub způsobí, že se makro dokončí poté, co odvedlo svou práci - v opačném případě by se uživateli zobrazila zpráva, i kdyby nedošlo k žádné chybě.

Vylepšení zaznamenaných maker

Dobrým způsobem, jak se naučit základy VBA, je zaznamenat makro a zjistit, jak Excel píše svůj vlastní kód. Zaznamenaná makra však často obsahují mnohem více kódu, než je nutné. Následující cvičení ukazují, jak můžete zlepšit a zefektivnit kód, který byl vytvořen zaznamenaným makrem.

Cvičení 2: Vylepšení zaznamenaných maker

Toto cvičení ukazuje, že když se zaznamenávají makra, často se generuje více kódu, než je nutné. Předvádí použití příkazu With pro přípravu kódu.

1. Vyberte libovolnou buňku nebo blok buněk.

2. Spusťte záznam makra a zavolejte makro FormatCells. Nastavení Relativní reference nebude relevantní.

3. Přejděte na Formát> Buňky> Písmo a vyberte si Times New Roman a Červené.
Jít do Vzory a vyberte si Žlutá.
Jít do Vyrovnání a vyberte si Horizontální, střed
Jít do Číslo a vyberte si Měna.

4. Klikněte na OK a zastavte rekordér.

5. Klikněte na vrátit tlačítko (nebo Ctrl+Z) zrušíte změny v listu.

6. Vyberte blok buněk a spusťte soubor FormatCells makro. Všimněte si, že to nelze vrátit zpět! Výsledek formátování zkontrolujete zadáním buněk.

7. Podívejte se na kód:

Výběr dílčího formátu ()

Selection.NumberFormat = "$#, ## 0,00"

S výběrem

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

.Orientace = 0

.ShrinkToFit = False

.MergeCells = False

Konec s

S Selection.Font

.Name = "Times New Roman"

.FontStyle = "Pravidelný"

.Velikost = 10

.Strikethrough = False

.Superscript = False

.Subscript = False

.OutlineFont = False

.Shadow = False

.Underline = xlUnderlineStyleNone

.ColorIndex = 3

Konec s

S výběrem interiéru

.ColorIndex = 6

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

Konec s

End Sub

Změňte písmo na Times New Roman
Změňte barvu písma na Červené
Změňte barvu výplně na Žlutá
Klikněte na Centrum knoflík
Klikněte na Měna knoflík

13. Podívejte se na kód. Stále máte spoustu věcí, které nutně nechcete. Excel zaznamenává vše výchozí nastavení. Většinu z nich lze bezpečně odstranit.

14. Experimentujte s úpravami přímo v kódu, abyste změnili barvy, písmo, formát čísel atd.

Cvičení 3: Sledujte zaznamenávání makra

Toto cvičení ukazuje, že se můžete učit sledováním sestavování makra při jeho záznamu. Je to také příklad, kdy někdy není příkaz With vhodný.

1. Otevřete soubor VBA01.xls.

Přestože je tento list vizuálně v pořádku a uživatel mu může rozumět, přítomnost prázdných buněk může způsobovat problémy. Zkuste data filtrovat a uvidíte, co se stane. Jít do Data> Filtr> Automatický filtr a filtrovat podle regionu nebo měsíce. Je jasné, že Excel nedělá stejné předpoklady jako uživatel. Prázdné buňky je třeba vyplnit.

2. Okna aplikace Excel a VBE (svisle) obkládejte vedle sebe.

3. Vyberte libovolnou buňku v datech. Pokud se jedná o prázdnou buňku, musí sousedit s buňkou obsahující data.

4. Spusťte záznam makra a zavolejte makro FillEmptyCells. Nastaveno na záznam Relativní reference.

5. V okně VBE vyhledejte a poklepejte na modul (Modul1) pro aktuální sešit a otevřete podokno úprav, poté vypněte okno Průzkumník projektů a Okno Vlastnosti (pouze uvolněte místo).

6. Zaznamenejte nové makro následujícím způsobem:

Krok 1. Ctrl+* (pro výběr aktuální oblasti)
Krok 2. Upravit> Přejít na> Speciální> Mezery> OK (pro výběr všech prázdných buněk v aktuální oblasti)
Krok 3. Napište = [Šipka nahoru] poté stiskněte Ctrl+Enter (umístit psaní do všech vybraných buněk)
Krok 4. Ctrl+* (znovu vybrat aktuální region)
Krok 5. Ctrl+C. (zkopírovat výběr - postačí jakákoli metoda)
Krok 6. Upravit> Vložit jinak> Hodnoty> OK (pro vložení dat zpět na stejné místo, ale zahození vzorců)
Krok 7. Esc (vyjít z režimu kopírování)
Krok 8. Zastavte nahrávání.

7. Podívejte se na kód:

Sub FillEmptyCells ()

Selection.CurrentRegion.Select

Selection.SpecialCells (xlCellTypeBlanks). Vyberte

Selection.FormulaR1C1 = "= R [-1] C"

Selection.CurrentRegion.Select

Výběr. Kopírovat

Selection.PasteSpecial Paste: = xlValues, Operace: = xlNone, SkipBlanks: = _

False, Transpose: = False

Application.CutCopyMode = False

End Sub

8. Všimněte si použití mezery a podtržítka „_“ k označení rozdělení jednoho řádku kódu na nový řádek. Bez tohoto by aplikace Excel považovala kód za dva samostatné příkazy.

9. Protože toto makro bylo zaznamenáno s dobře promyšlenými příkazy, existuje jen málo zbytečného kódu. V Vložit speciální vše za slovem „xlValues“ lze smazat.

10. Vyzkoušejte makro. Poté použijte nástroj AutoFilter a všimněte si rozdílu.