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.

Leave a Comment

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Objevte, jak efektivně využívat příkazy Znovu a Opakovat ve Wordu 2016 pro opravy dokumentů a zlepšení pracovního toku.

Jak změnit zamčené a skryté formátování buněk

Jak změnit zamčené a skryté formátování buněk

Naučte se, jak efektivně změnit stav buněk v Excelu 2010 z uzamčených na odemčené nebo z neskrytého na skrytý s naším podrobným průvodcem.

Jak přeložit text v cizím jazyce ve Wordu 2016

Jak přeložit text v cizím jazyce ve Wordu 2016

Zjistěte, jak efektivně využít překladové nástroje v Office 2016 pro překlad slov a frází. Překlad Gizmo vám pomůže překládat text s lehkostí.

Jak používat šablony ve Wordu 2013

Jak používat šablony ve Wordu 2013

Šablona ve Wordu šetří čas a usnadňuje vytváření dokumentů. Zjistěte, jak efektivně používat šablony ve Wordu 2013.

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Zjistěte, jak si vytvořit e-mailová upozornění ve SharePointu a zůstat informováni o změnách v dokumentech a položkách.

Obsah SharePoint Online a typy obsahu

Obsah SharePoint Online a typy obsahu

Objevte skvělé funkce SharePoint Online, včetně tvorby a sdílení dokumentů a typů obsahu pro efektivnější správu dat.

Výpočet fiskálního čtvrtletí pro datum v Excelu

Výpočet fiskálního čtvrtletí pro datum v Excelu

Zjistěte, jak vypočítat fiskální čtvrtletí v Excelu pro různá data s použitím funkce CHOOSE.

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Zjistěte, jak vytvořit hypertextový odkaz v PowerPointu, který vám umožní pohodlně navigovat mezi snímky. Použijte náš návod na efektivní prezentace.

Zobrazit starší verzi dokumentu aplikace Word 2016

Zobrazit starší verzi dokumentu aplikace Word 2016

Uložili jste nedávno svůj dokument? Náš návod vám ukáže, jak zobrazit starší verze dokumentu v aplikaci Word 2016.

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra vlastní kartě na pásu karet nebo tlačítku na panelu nástrojů Rychlý přístup. Návod pro Excel 2013.