DoEvents 函式

產生執行,讓作業系統可以處理其他事件。

語法

DoEvents ( )

註解

DoEvents函式會傳回Integer,代表獨立版 Visual Basic 中開啟的表單數目,例如 Visual Basic 專業版。 DoEvents 會 在所有其他應用程式中傳回零。

DoEvents 會將控制權傳遞給作業系統。 控制會在作業系統完成處理其佇列中的事件,且已傳送 SendKeys 佇列中的所有金鑰之後傳回。

DoEvents 最適合用於簡單的作業,例如允許使用者在程式啟動後取消進程,例如搜尋檔案。 對於長時間執行的進程,使用計時器或將工作委派給 ActiveX EXE 元件,可以更妥善地產生處理器。 在後者的情況下,工作可以完全獨立于您的應用程式,而作業系統會負責多工處理和時間切割。

每當您在事件程序內暫時產生處理器時,請確定在第一次呼叫傳回之前,程式不會從程式碼的不同部分再次執行;這可能會導致無法預期的結果。 此外,如果其他應用程式可能在您產生控制權期間以未預期的方式與您的程式互動,請勿使用 DoEvents

範例

此範例會使用 DoEvents 函式,讓執行每 1000 次迴圈反覆運算一次,就會對作業系統產生一次。 DoEvents 會 傳回開啟的 Visual Basic 表單數目,但只有在主應用程式為 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.


另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應