Tipy pro rychlost VBA pro Excel 2016

VBA pro Excel 2016 je rychlý, ale není vždy dostatečně rychlý. (Počítačové programy nejsou nikdy dost rychlé.) Pokračujte ve čtení a objevte příklady programování, které můžete použít k urychlení maker.

Vypínání aktualizace obrazovky

Při provádění makra můžete sedět a sledovat všechny akce na obrazovce, které se v makru vyskytují. Ačkoli to může být poučné, po správném fungování makra je to často nepříjemné a může to výrazně zpomalit výkon vašeho makra. Naštěstí můžete zakázat aktualizaci obrazovky, ke které normálně dochází při spuštění makra. Chcete-li vypnout aktualizaci obrazovky, použijte následující prohlášení:

Application.ScreenUpdating = False

Pokud chcete, aby uživatel viděl, co se děje v kterémkoli okamžiku makra, použijte následující příkaz k opětovnému zapnutí aktualizace obrazovky:

Application.ScreenUpdating = True

Chcete-li demonstrovat rozdíl v rychlosti, spusťte toto jednoduché makro, které vyplní rozsah čísly:

Sub FillRange()
  Dim r as Long, c As Long
  Ztlumené číslo jako dlouhé
  Číslo = 0
  Pro r = 1 až 50
    Pro c = 1 až 50
      Číslo = Číslo + 1
      Cells(r, c).Vyberte
      Cells(r, c).Hodnota = číslo
    Další c
  Další r
End Sub

Vidíte, že každá buňka je vybrána a hodnota se zadává do buněk. Nyní vložte následující příkaz na začátek procedury a proveďte jej znovu:

Application.ScreenUpdating = False

Rozsah se plní mnohem rychleji a výsledek nevidíte, dokud není makro spuštěno a aktualizace obrazovky není (automaticky) nastavena na True.

Když ladíte kód, provádění programu někdy skončí někde uprostřed, aniž byste znovu zapnuli aktualizaci obrazovky. To někdy způsobí, že okno aplikace Excelu zcela přestane reagovat. Cesta ven z tohoto zmrazeného stavu je jednoduchá: Vraťte se zpět do VBE a proveďte následující příkaz v okně Immediate:

Application.ScreenUpdating = True

Vypnutí automatického výpočtu

Pokud máte list s mnoha složitými vzorci, možná zjistíte, že můžete věci značně urychlit nastavením režimu výpočtu na ruční během provádění makra. Po dokončení makra nastavte režim výpočtu zpět na automatický.

Následující příkaz nastaví režim výpočtu Excel na ruční:

Application.Calculation = xlCalculationManual

Provedením následujícího příkazu nastavte režim výpočtu na automatický:

Application.Calculation = xlCalculationAutomatic

Pokud váš kód používá buňky s výsledky vzorců, vypnutí výpočtu znamená, že buňky nebudou přepočítány, pokud Excel výslovně nepřikážete, aby to udělal!

Odstranění těch otravných výstražných zpráv

Jak víte, makro může automaticky provádět řadu akcí. V mnoha případech můžete spustit makro a pak jít do odpočinkové místnosti, zatímco Excel dělá svou věc. Některé operace aplikace Excel však zobrazují zprávy, které vyžadují lidskou reakci. Tyto typy zpráv znamenají, že nemůžete nechat Excel bez dozoru, když provádí vaše makro – pokud neznáte tajný trik.

Tipy pro rychlost VBA pro Excel 2016

Můžete aplikaci Excel přikázat, aby při spuštění makra nezobrazovala tyto typy výstrah.

Tajným trikem, jak se těmto výstražným zprávám vyhnout, je vložení následujícího příkazu VBA do makra:

Application.DisplayAlerts = False

Excel provede výchozí operaci pro tyto typy zpráv. V případě odstranění listu je výchozí operací Odstranit. Pokud si nejste jisti, jaká je výchozí operace, proveďte test, abyste viděli, co se stane.

Po ukončení procedury Excel automaticky obnoví vlastnost DisplayAlerts na hodnotu True. Pokud potřebujete výstrahy znovu zapnout před ukončením procedury, použijte toto prohlášení:

Application.DisplayAlerts = True

Zjednodušení odkazů na objekty

Jak už asi víte, odkazy na objekty mohou být velmi zdlouhavé. Plně kvalifikovaný odkaz na objekt Range může například vypadat takto:

Sešity („MyBook.xlsx“). Pracovní listy („List1“) _
  .Rozsah (“úroková sazba”)

Pokud vaše makro často používá tento rozsah, můžete vytvořit proměnnou objektu pomocí příkazu Set. Například následující příkaz přiřadí tento objekt Range k proměnné objektu s názvem Rate:

Nastavit sazbu = sešity(“MyBook.xlsx”) _
  .Worksheets(“List1”).Rozsah(”Úroková sazba”)

Po definování této proměnné objektu můžete místo dlouhého odkazu použít proměnnou Rate. Můžete například změnit hodnotu buňky s názvem Úroková míra:

Rate.Value = 0,085

Toto je mnohem jednodušší napsat než následující prohlášení:

Sešity („MyBook.xlsx“). Pracovní listy („List1“). _
  Rozsah („Úroková sazba“) = 0,085

Kromě zjednodušení kódování použití objektových proměnných značně urychlí vaše makra.

Deklarování typů proměnných

Obvykle se nemusíte starat o typ dat, která proměnné přiřadíte. Excel za vás vyřídí všechny detaily v zákulisí. Pokud máte například proměnnou s názvem MyVar, můžete této proměnné přiřadit číslo libovolného typu. Později v postupu mu můžete dokonce přiřadit textový řetězec.

Pokud chcete, aby se vaše procedury spouštěly co nejrychleji, sdělte Excelu, jaký typ dat bude přiřazen každé z vašich proměnných. Toto je známé jako deklarování typu proměnné.

Obecně byste měli používat datový typ, který vyžaduje nejmenší počet bajtů, přesto dokáže zpracovat všechna data, která jsou mu přiřazena. Když VBA pracuje s daty, rychlost provádění závisí na počtu bajtů, které má VBA k dispozici. Jinými slovy, čím méně bajtů data používají, tím rychleji může VBA přistupovat a manipulovat s daty. Výjimkou je datový typ Integer. Pokud je rychlost kritická, použijte místo toho datový typ Long.

Pokud používáte proměnnou objektu, můžete proměnnou deklarovat jako konkrétní typ objektu. Zde je příklad:

Míra ztlumení jako rozsah
Nastavit sazbu = sešity(“MyBook.xlsx”) _
  .Worksheets(“List1”).Rozsah(”Úroková sazba”)

Použití struktury With-End With

Potřebujete pro objekt nastavit řadu vlastností? Pokud použijete strukturu With-End With, váš kód běží rychleji. Další výhodou je, že váš kód může být snadněji čitelný.

Následující kód nepoužívá With-End With:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = True
Výběr. Orientace = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Zde je stejný kód, přepsaný tak, aby používal With-End With:

S výběrem
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Pravda
  .Orientace = 0
  .ShrinkToFit = False
  .MergeCells = False
Konec s

Když použijete With-End With, ujistěte se, že každý příkaz začíná tečkou.


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ý […]