注意
若 Microsoft Jet Expression Service 以沙盒模式執行,則本主題所述的函式、方法、物件或屬性將被禁用,避免評估潛在不安全的表達式。 想了解更多沙盒模式的資訊,請在說明中搜尋「sandbox mode」。
讓執行,讓作業系統能處理其他事件。
語法
DoEvents ( )
註解
DoEvents 函式回傳一個整數,代表 Microsoft Visual Basic 獨立版本(如 Visual Basic, Professional Edition)中開啟表單數量。 DoEvents 在其他所有應用程式中回傳為零。
DoEvents 將控制權交給作業系統。 控制權會在作業系統完成處理隊列中的事件且 SendKeys 隊列中所有金鑰都已傳送後回傳。
DoEvents 最有用的是簡單的事情,例如允許使用者在程序啟動後取消,例如搜尋檔案。 對於長時間執行的程序,讓渡給處理器的方法是使用計時器或委託給 ActiveX EXE 元件。 在後者情況下,任務可以完全獨立於你的應用程式進行,作業系統會負責多工與時間切割。
每當你在事件程序中暫時讓路給處理器時,務必確保該程序不會在第一次呼叫返回前,從程式碼的其他部分再次執行;這可能導致不可預測的結果。 此外,若其他應用程式可能在您交出控制權期間以不可預見的方式與您的程序互動,請勿使用 DoEvents 。
範例
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。
此範例使用 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.