DoEvents-FunktionDoEvents function

Führt zur Ausführung, sodass das Betriebssystem andere Prozesse verarbeiten kann.Yields execution so that the operating system can process other events.

SyntaxSyntax

DoEvents ( )DoEvents( )

BemerkungenRemarks

Die DoEvents-Funktion gibt eine Ganzzahl zurück, die die Anzahl geöffneter Formulare in eigenständigen Versionen von Visual Basic, beispielsweise Visual Basic Professional Edition, darstellt.The DoEvents function returns an Integer representing the number of open forms in stand-alone versions of Visual Basic, such as Visual Basic, Professional Edition. DoEvents gibt in allen anderen Anwendungen Null zurück.DoEvents returns zero in all other applications.

DoEvents gibt die Kontrolle an das Betriebssystem weiter.DoEvents passes control to the operating system. Die Kontrolle wird zurückgegeben, nachdem das Betriebssystem die Verarbeitung der in der zugehörigen Warteschlange befindlichen Ereignisse abgeschlossen hat und nachdem alle Schlüssel in der SendKeys-Warteschlange gesendet wurden.Control is returned after the operating system has finished processing the events in its queue and all keys in the SendKeys queue have been sent.

DoEvents ist für einfache Vorgänge besonders hilfreich, beispielsweise um dem Benutzer das Abbrechen eines Prozesses nach dessen Start zu ermöglichen (z. B. eine Dateisuche).DoEvents is most useful for simple things like allowing a user to cancel a process after it has started, for example a search for a file. Bei Prozessen mit langer Ausführungszeit wird die Bereitstellung des Prozessors besser erreicht, indem ein Zeitgeber verwendet oder die Aufgabe an eine ActiveX-EXE-Komponente delegiert wird.For long-running processes, yielding the processor is better accomplished by using a Timer or delegating the task to an ActiveX EXE component. Im letzteren Fall kann die Aufgabe vollständig unabhängig von Ihrer Anwendung fortgesetzt werden, und das Betriebssystem sorgt für Multitasking und Zeit-Slices.In the latter case, the task can continue completely independent of your application, and the operating system takes care of multitasking and time slicing.

Stellen Sie bei jeder vorübergehenden Bereitstellung des Prozessors in einer Ereignisprozedur sicher, dass die Prozedur vor der Rückgabe des ersten Aufrufs nicht erneut von einem anderen Teil des Codes ausgeführt wird; dies könnte zu unerwarteten Ergebnissen führen.Any time you temporarily yield the processor within an event procedure, make sure the procedure is not executed again from a different part of your code before the first call returns; this could cause unpredictable results. Verwenden Sie zudem DoEvents nicht, wenn die Möglichkeit besteht, dass andere Anwendungen auf unvorhergesehene Art und Weise mit Ihrer Prozedur agieren, während Sie die Kontrolle bereitstellen.In addition, do not use DoEvents if other applications could possibly interact with your procedure in unforeseen ways during the time you have yielded control.

BeispielExample

In diesem Beispiel wird die DoEvents -Funktion zum Auslösen der Ausführung verwendet, bei der das Betriebssystem in jeder tausendsten Iteration der Schleife bereitgestellt wird.This example uses the DoEvents function to cause execution to yield to the operating system once every 1000 iterations of the loop. DoEvents gibt die Anzahl geöffneter Visual Basic-Formulare zurück, aber nur dann, wenn Visual Basic die Hostanwendung ist.DoEvents returns the number of open Visual Basic forms, but only when the host application is Visual Basic.

' 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.


Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.