Hinweis: Die in diesem Thema beschriebene Funktion, Methode, Objekt oder Eigenschaft ist deaktiviert, wenn der Microsoft Jet-Ausdrucksdienst im Sandboxmodus ausgeführt wird, der die Auswertung potenziell unsicherer Ausdrücke verhindert. Weitere Informationen zum Sandboxmodus finden Sie, wenn Sie in der Hilfe nach "Sandboxmodus" suchen.
Gibt die Steuerung an das Betriebssystem, damit das Betriebssystem andere Prozesse verarbeiten kann.
Syntax
DoEvents ( )
Hinweise
Die DoEvents-Funktion gibt eine Ganzzahl zurück, die die Anzahl geöffneter Formulare in eigenständigen Versionen von Microsoft Visual Basic, beispielsweise Visual Basic Professional Edition, darstellt. DoEvents gibt in allen anderen Anwendungen 0 (null) zurück.
DoEvents gibt die Steuerung an das Betriebssystem weiter. Die Steuerung 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 durch Verwendung eines Zeitgebers oder durch Delegieren des Tasks an eine ActiveX-EXE-Komponente erreicht. Im letzteren Fall kann der Task vollständig unabhängig von Ihrer Anwendung fortgesetzt werden, und das Betriebssystem übernimmt Multitasking- und Zeitschachtelungsvorgänge.
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 zudem DoEvents nicht, wenn die Möglichkeit besteht, dass andere Anwendungen auf unvorhergesehene Art und Weise mit Ihrer Prozedur agieren, während Sie die Steuerung bereitstellen.
Beispiel
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
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.