VBA-slaapfunctie

Slaapfunctie in VBA is eigenlijk een Windows-functie. Het is vergelijkbaar met de wachtfunctie in VBA. Het wordt gebruikt om te vertragen of te pauzeren of we kunnen zeggen dat het uitvoeren van een specifieke code tegen een bepaalde tijd wordt gestopt. De slaapfunctie moet worden opgeroepen in VBA terwijl dit in de code wordt aangegeven. Hoe we dat doen, zullen we leren in het onderwerp van vandaag.

Zoals hierboven uitgelegd, is VBA Sleep een Windows-functie en het is aanwezig in de kerneldatabase van Windows. De methode voor het declareren en aanroepen van de slaapfunctie in VBA is verschillend voor zowel 32-bits besturingssystemen als 64-bits besturingssystemen. Het is eigenlijk een Windows API-functie.

De syntaxis om de VBA Sleep-functie te gebruiken is als volgt:

Sleep (Time in Mili Seconds)

Dus als we de code 1 seconde moeten vertragen of stoppen, moeten we de code schrijven als:

 Slaap 1000 

1000 is de mili seconden die gelijk is aan 1 seconde en het zal de code 1 seconde vertragen. Als we de code 5 seconden langzamer willen maken, is de code:

 Slaap 5000 

De verklaring voor de slaapfunctie is als volgt:

 #Indien VBA7 Dan 'Excel 2010 of later Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 of eerder Openbaar verklaren Sub Sleep Lib "kernel32" (ByVal Milliseconds Zo lang) #End Als 
Opmerking: Voordat we de slaapfunctie gebruiken, is er één ding dat we in gedachten moeten houden. We moeten deze functie in modules gebruiken, niet in de objecten excel. Om VBA te gebruiken om ervoor te zorgen dat het tabblad Ontwikkelaar is ingeschakeld vanaf het tabblad Bestanden in het gedeelte Opties.

Hoe de Excel VBA-slaapfunctie te gebruiken?

We zullen leren hoe een VBA-slaapfunctie te gebruiken met enkele voorbeelden in Excel.

U kunt deze VBA Sleep Excel-sjabloon hier downloaden - VBA Sleep Excel-sjabloon

VBA-slaapfunctie - Voorbeeld # 1

Wat we in dit voorbeeld gaan doen, is dat we een bericht naar de gebruiker sturen dat de macro vijf seconden stopt. En precies na vijf seconden willen we een tweede bericht laten verschijnen met de melding dat de macro is hervat.

Volg de onderstaande stappen om de slaapfunctie in Excel VBA te gebruiken:

Stap 1: Ga naar het tabblad Ontwikkelaars en klik op Visual Basic om VB Editor te openen.

Stap 2: Zodra de VB-editor is geopend, klikt u op Tab invoegen en vervolgens op modules om een ​​nieuwe module in te voegen.

Stap 3: Gebruik nu de verklaring om de slaapfunctie te gebruiken. Aangezien ik Windows 64-bit besturingssysteem gebruik, zal ik de aangifteverklaring hiervoor gebruiken.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds als LongPtr) 

Stap 4: Declareer nu de subfunctie om te beginnen met het schrijven van de code.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Stap 5: Gebruik de Mgsbox-functie om het bericht weer te geven dat de macro vijf seconden wordt gepauzeerd.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wordt vijf seconden gepauzeerd" End Sub 

Stap 6: Gebruik de slaapfunctie om de macro vijf seconden te pauzeren.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wordt vijf seconden gepauzeerd" Sleep 5000 End Sub 

Stap 7: Gebruik nu de msgbox-functie om het bericht weer te geven dat de macro is hervat.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wordt vijf seconden gepauzeerd" Sleep 5000 MsgBox "Macro is hervat" End Sub 

Stap 8: Voer de code uit met de meegeleverde knop Uitvoeren of druk op F5 om het resultaat te bekijken. We zien dat het eerste bericht wordt weergegeven.

Stap 9: Zodra we op Ok klikken en vijf seconden wachten, zien we nog een bericht.

Er was een pauze van vijf seconden tussen beide berichten.

VBA-slaapfunctie - Voorbeeld # 2

Wat we in een ander voorbeeld gaan doen, is dat ik vier variabelen A, B, C en D heb. Eerst wil ik de waarde van A en B toevoegen en weergeven en na 5 seconden wil ik de waarde van de toevoeging van A, B, C en D.

Volg de onderstaande stappen om de slaapfunctie in Excel VBA te gebruiken:

Stap 1: Ga naar het tabblad Ontwikkelaars en klik op Visual Basic om VB Editor te openen.

Stap 2: Zodra de VB-editor is geopend, klikt u op Tab invoegen en vervolgens op modules om een ​​nieuwe module in te voegen.

Stap 3: Gebruik nu de verklaring om de slaapfunctie te gebruiken. Aangezien ik Windows 64-bit besturingssysteem gebruik, zal ik de aangifteverklaring hiervoor gebruiken.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds als LongPtr) 

Stap 4: Declareer nu de subfunctie om te beginnen met het schrijven van de code.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Stap 5: Declareer zes variabelen A, B, C, D, X en Y om waarden op te slaan.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y als Integer End Sub 

Stap 6: Geef willekeurige waarden voor A, B, C en D.

Code:

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

Stap 7: Sla de waarde van A + B op in X.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y als geheel getal A = 10 B = 15 C = 20 D = 25 X = A + B Einde Sub 

Stap 8: Geef de waarde van X weer.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y als geheel getal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Stap 9: Gebruik nu de slaapfunctie om vijf seconden te pauzeren.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y als geheel getal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Stap 10: Sla nu in variabele Y de waarde van X + C + D op en geef deze weer.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y als geheel getal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Stap 11: Voer de bovenstaande code uit met de meegeleverde knop Uitvoeren of door op F5 te drukken en het resultaat te bekijken. We zien dat het eerste bericht wordt weergegeven als.

Stap 12: Druk op OK en de macro wacht vijf seconden en geeft het volgende resultaat weer.

VBA-slaapfunctie - Voorbeeld # 3

In dit voorbeeld willen we twee werkbladen blad 1 en blad 2 hernoemen als respectievelijk Anand en Aran. Maar de tijdsduur tussen beide moet vijf seconden zijn. Kortom, we willen dat de macro na het hernoemen van blad 1 pauzeert en vervolgens blad 2 hernoemt. Momenteel hebben beide bladen de volgende naam:

Volg de onderstaande stappen om de slaapfunctie in Excel VBA te gebruiken:

Stap 1: Ga naar het tabblad Ontwikkelaars en klik op Visual Basic om VB Editor te openen.

Stap 2: Zodra de VB-editor is geopend, klikt u op Tab invoegen en vervolgens op modules om een ​​nieuwe module in te voegen.

Stap 3: Gebruik nu de verklaring om de slaapfunctie te gebruiken. Aangezien ik Windows 64-bit besturingssysteem gebruik, zal ik de aangifteverklaring hiervoor gebruiken.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds als LongPtr) 

Stap 4: Declareer nu de subfunctie om te beginnen met het schrijven van de code.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Stap 5: Activeer werkblad 1 en hernoem het met de volgende code:

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Werkbladen ("Sheet1"). Activeer werkbladen ("Sheet1"). Name = "Anand" MsgBox "Blad 1 hernoemd" End Sub 

Stap 6: Gebruik nu de slaapfunctie om de vertraging vijf seconden te gebruiken.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Werkbladen ("Sheet1"). Activeer werkbladen ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 hernoemd" Sleep 5000 End Sub 

Stap 7: hernoem nu het blad 2 met de volgende code.

Code:

 Openbaar verklaren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Werkbladen ("Blad1"). Activeer Werkbladen ("Blad1"). Name = "Anand" MsgBox "Blad 1 hernoemd" Sleep 5000 Werkbladen (" Sheet2 "). Activeer werkbladen (" Sheet2 "). Name =" Aran "MsgBox" Sheet 2 hernoemd "End Sub 

Stap 8: Voer nu de code uit en we zien dat het eerste bericht wordt weergegeven.

We kunnen ook controleren of blad 1 is hernoemd.

Stap 9: Druk op ok en wacht vijf seconden totdat het volgende bericht en het tweede vel worden hernoemd.

Het tweede blad wordt ook hernoemd.

Dingen om te onthouden

  • VBA Sleep is een vensterfunctie, dus om te gebruiken moeten we aangifteverklaringen gebruiken.
  • Er zijn verschillende verklaringen voor verschillende typen besturingssystemen.
  • Gewoon met behulp van VBA Sleep bevriest de macro voor de opgegeven tijdsduur.
  • De tijdparameter die aan de VBA-slaapfunctie wordt gegeven, is in milliseconden.

Aanbevolen artikelen

Dit is een handleiding voor de VBA-slaapfunctie. Hier bespreken we hoe u Excel VBA-slaapfunctie kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA VLOOKUP-functie
  2. DCOUNT-functie in Excel
  3. VBA kopiëren plakken
  4. COMBIN-functie in Excel

Categorie: