Opmerking: De functie, methode, object of eigenschap die in dit onderwerp wordt beschreven, is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandbox-modus, waardoor de evaluatie van mogelijk onveilige expressies wordt voorkomen. Zoek naar 'sandbox-modus' in de Help voor meer informatie over de sandboxmodus.
Met deze functie wordt de uitvoering overgedragen, zodat het besturingssysteem andere gebeurtenissen kan verwerken.
Syntaxis
DoEvents ( )
Opmerkingen
De functie DoEvents retourneert een geheel getal dat verwijst naar het aantal geopende formulieren in zelfstandige versies van Microsoft Visual Basic, zoals Visual Basic, Professional Edition. DoEvents retourneert nul in alle andere toepassingen.
Met DoEvents wordt de besturing overgedragen aan het besturingssysteem. De besturing wordt teruggegeven als het besturingssysteem de gebeurtenissen in de wachtrij heeft verwerkt en alle toetsen in de wachtrij SendKeys zijn verzonden.
DoEvents is vooral handig voor eenvoudige zaken zoals een gebruiker de mogelijkheid bieden om een proces te annuleren nadat dit is gestart, bijvoorbeeld een zoekopdracht naar een bestand. Voor langdurige processen is overdracht naar de processor gemakkelijker te realiseren met behulp van een timer of door de taak te delegeren naar een ActiveX EXE-component. In het laatste geval kan de taak volledig onafhankelijk van de toepassing worden verwerkt en zorgt het besturingssysteem voor multitasking en time-slicing.
Wanneer u binnen een gebeurtenisprocedure tijdelijk toegeeft aan de verwerker, moet u ervoor zorgen dat de procedure niet opnieuw wordt uitgevoerd vanuit een ander deel van uw code voordat de eerste aanroep wordt geretourneerd; dit kan onvoorspelbare resultaten veroorzaken. Gebruik bovendien DoEvents niet als andere toepassingen mogelijk op onvoorziene manieren met uw procedure kunnen communiceren gedurende de tijd dat u de controle hebt overgegeven.
Voorbeeld
Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
In dit voorbeeld wordt de functie DoEvents gebruikt om de uitvoering om de 1000 herhalingen van de lus over te dragen aan het besturingssysteem. DoEvents retourneert het aantal geopende Visual Basic-formulieren, maar alleen als de hosttoepassing Visual Basic is.
' Create a variable to hold number of
' Visual Basic forms loaded and visible. Dim I, OpenForms For I = 1 To 150000 ' Start loop. If I Mod 1000 = 0 Then ' If loop has repeated ' 1000 times. OpenForms = DoEvents ' Yield to operating system. End If Next I ' Increment loop counter.