DoEvents-Funktion

Führt zur Ausführung, sodass das Betriebssystem andere Prozesse verarbeiten kann.

Syntax

DoEvents( )

HinwBemerkungeneise

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. DoEvents gibt in allen anderen Anwendungen Null zurück.

DoEvents gibt die Kontrolle an das Betriebssystem weiter. 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.

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). 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. Im letzteren Fall kann die Aufgabe vollständig unabhängig von Ihrer Anwendung fortgesetzt werden, und das Betriebssystem kümmert sich um Multitasking und Zeitslicing.

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. Verwenden Sie außerdem doEvents nicht, wenn andere Anwendungen möglicherweise auf unvorhergesehene Weise mit Ihrer Prozedur interagieren könnten, während Sie die Kontrolle erhalten haben.

Beispiel

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. DoEvents gibt die Anzahl geöffneter Visual Basic-Formulare zurück, aber nur dann, wenn Visual Basic die Hostanwendung ist.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.