Funkce spánku VBA

Funkce spánku ve VBA je ve skutečnosti funkcí systému Windows. Podobá se funkce čekání ve VBA. Používá se ke zpomalení nebo pozastavení, nebo můžeme říci zastavit běh konkrétního kódu o určitou dobu. Funkce spánku musí být volána ve VBA, zatímco je deklarována v kódu. Jak to děláme, se naučíme v dnešním tématu.

Jak je vysvětleno výše, VBA Sleep je funkce systému Windows a je přítomna v jádrové databázi oken. Metoda deklarování a vyvolání funkce spánku ve VBA se liší jak pro 32bitové operační systémy, tak pro 64bitové operační systémy. V zásadě jde o funkci rozhraní API systému Windows.

Syntaxe použití funkce VBA Sleep je následující:

Spánek (čas v Mili sekundách)

Pokud tedy potřebujeme zpomalit nebo zastavit kód na 1 sekundu, musíme jej napsat jako:

 Spát 1000 

1000 je milión sekund, což se rovná 1 sekundě a zpomalí kód na 1 sekundu. Pokud chceme kód zpomalit na 5 sekund, bude to kód:

 Spát 5000 

Prohlášení o funkci spánku je následující:

 #If VBA7 Pak 'Excel 2010 nebo novější veřejné deklarace PtrSafe Sub Sleep Lib "kernel32" (ByVal milisekundy jako LongPtr) #Else' Excel 2007 nebo dřívější veřejné Declare Sub Sleep Lib "kernel32" (ByVal milisekundy jako dlouho) #End If 
Poznámka: Před použitím funkce spánku je třeba mít na paměti jednu věc. Tuto funkci musíme použít v modulech, nikoli v excelovských objektech. Chcete-li pomocí karty VBA zajistit, aby byla karta vývojáře zapnutá na kartě soubory v části Možnosti.

Jak používat funkci spánku Excel VBA?

Naučíme se, jak používat funkci VBA Sleep, s několika příklady v Excelu.

Tuto šablonu VBA Sleep Excel si můžete stáhnout zde - VBA Sleep Excel Template

Funkce spánku VBA - Příklad č. 1

V tomto příkladu uděláme to, že uživateli vyskočíme zprávu, že makro se na pět sekund zastaví. A přesně po pěti sekundách chceme, aby se objevila druhá zpráva, která říká, že makro bylo obnoveno.

Chcete-li použít funkci spánku v aplikaci Excel VBA, postupujte takto:

Krok 1: Přejděte na kartu Vývojář a kliknutím na Visual Basic otevřete Editor VB.

Krok 2: Po otevření editoru VB klikněte na záložku Vložit a poté kliknutím na moduly vložte nový modul.

Krok 3: Nyní použijte prohlášení k použití funkce spánku. Vzhledem k tomu, že používám 64bitový operační systém Windows, použiji pro něj prohlášení.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Nyní deklarujte podfunkci a začněte psát kód.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Krok 5: Pomocí funkce Mgsbox zobrazte zprávu, že makro bude pozastaveno na pět sekund.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro bude pozastaven na dobu pěti sekund" End Sub 

Krok 6: Pomocí funkce spánku pozastavte makro na pět sekund.

Kód:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro bude pozastaven na dobu pěti sekund" Sleep 5000 End Sub 

Krok 7: Nyní použijte funkci msgbox k zobrazení zprávy, že makro bylo obnoveno.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "Makro bude pozastaveno na pět sekund" Makro Sleep 5000 MsgBox "Makro bylo obnoveno" End Sub 

Krok 8: Spusťte kód z poskytnutého spouštěcího tlačítka nebo stisknutím klávesy F5 zobrazte výsledek. Vidíme, že se zobrazí první zpráva.

Krok 9: Jakmile klikneme na OK a počkáme pět sekund, uvidíme další zprávu.

Mezi oběma zprávami byla pauza na pět sekund.

Funkce spánku VBA - Příklad č. 2

Nyní uděláme v dalším příkladu to, že mám čtyři proměnné A, B, C a D. Nejprve chci přidat hodnotu A a B a zobrazit ji a po 5 sekundách chci zobrazit hodnotu přidání A, B, C a D.

Chcete-li použít funkci spánku v aplikaci Excel VBA, postupujte takto:

Krok 1: Přejděte na kartu Vývojář a kliknutím na Visual Basic otevřete Editor VB.

Krok 2: Po otevření editoru VB klikněte na záložku Vložit a poté kliknutím na moduly vložte nový modul.

Krok 3: Nyní použijte prohlášení k použití funkce spánku. Vzhledem k tomu, že používám 64bitový operační systém Windows, použiji pro něj prohlášení.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Nyní deklarujte podfunkci a začněte psát kód.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Krok 5: Deklarujte šest proměnných A, B, C, D, X a Y pro uložení hodnot.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako Integer End Sub Sub 

Krok 6: Přiřaďte náhodným hodnotám A, B, C a D.

Kód:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako Integer A = 10 B = 15 C = 20 D = 25 End Sub 

Krok 7: Uložte hodnotu A + B do X.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Krok 8: Zobrazte hodnotu X.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Krok 9: Nyní použijte funkci spánku k pauze na pět sekund.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Krok 10: Nyní do proměnné Y uložte hodnotu X + C + D a zobrazte ji.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y jako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Krok 11: Spusťte výše uvedený kód z poskytnutého spouštěcího tlačítka nebo stisknutím klávesy F5 a podívejte se na výsledek. Vidíme, že první zpráva je zobrazena jako.

Krok 12: Stiskněte OK a makro čeká pět sekund a zobrazí další výsledek.

Funkce spánku VBA - Příklad č. 3

V tomto příkladu chceme přejmenovat dva listy 1 listu a 2 listy jako Anand a Aran. Čas mezi nimi by ale měl být pět sekund. V podstatě chceme, aby se makro přejmenovalo po přejmenování listu 1 a potom přejmenování listu 2. V současné době jsou oba listy pojmenovány následovně:

Chcete-li použít funkci spánku v aplikaci Excel VBA, postupujte takto:

Krok 1: Přejděte na kartu Vývojář a kliknutím na Visual Basic otevřete Editor VB.

Krok 2: Po otevření editoru VB klikněte na záložku Vložit a poté kliknutím na moduly vložte nový modul.

Krok 3: Nyní použijte prohlášení k použití funkce spánku. Vzhledem k tomu, že používám 64bitový operační systém Windows, použiji pro něj prohlášení.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Nyní deklarujte podfunkci a začněte psát kód.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Krok 5: Aktivujte list 1 a přejmenujte jej pomocí následujícího kódu:

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Listy ("Sheet1"). Aktivace listů ("Sheet1"). Jméno = "Anand" MsgBox "List 1 přejmenovaný" End Sub 

Krok 6: Nyní použijte funkci spánku a použijte zpoždění po dobu pěti sekund.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Listy ("Sheet1"). Aktivace listů ("Sheet1"). Jméno = "Anand" MsgBox "List 1 přejmenovaný" Sleep 5000 End Sub 

Krok 7: Nyní přejmenujte list 2 podle následujícího kódu.

Kód:

 Veřejné prohlášení PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Listy ("Sheet1"). Aktivace listů ("Sheet1"). Název = "Anand" MsgBox "List 1 přejmenovaný na" Sleep 5000 Worksheet " List2 "). Aktivace listů (" List2 "). Jméno =" Aran "MsgBox" List 2 přejmenován na "End Sub 

Krok 8: Nyní spusťte kód a vidíme, že se zobrazí první zpráva.

Můžeme také zkontrolovat, zda je list 1 přejmenován.

Krok 9: Stiskněte ok a počkejte pět sekund, než se přejde k přejmenování další zprávy a druhého listu.

Druhý list je také přejmenován.

Co si pamatovat

  • VBA Sleep je funkce okna, takže k použití musíme použít prohlášení prohlášení.
  • Pro různé typy operačních systémů existují různá prohlášení.
  • Jednoduše pomocí VBA Sleep zmrazíte makro po stanovenou dobu.
  • Časový parametr daný funkci spánku VBA je v milisekundách.

Doporučené články

Toto je průvodce funkcí spánku VBA. Zde diskutujeme o tom, jak používat Excel VBA Sleep Function spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Funkce VBA VLOOKUP
  2. DCOUNT Funkce v Excelu
  3. Vložit kopii VBA
  4. Funkce COMBIN v Excelu

Kategorie: