Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Produz a execução para que o sistema operacional possa processar outros eventos.
Sintaxe
DoEvents( )
Comentários
A função DoEvents retorna um Integer que representa o número de formulários abertos em versões independentes do Visual Basic, como Visual Basic, Professional Edition. DoEvents retorna zero em todos os outros aplicativos.
DoEvents passa o controle para o sistema operacional. O controle é retornado depois que o sistema operacional termina de processar os eventos em sua fila e todas as chaves na fila SendKeys são enviadas.
DoEvents é mais útil para coisas simples, como permitir que um usuário cancele um processo depois de iniciado, por exemplo, uma pesquisa de um arquivo. Para processos de longa duração, o rendimento do processador é melhor realizado usando um temporizador ou delegando a tarefa a um componente ActiveX EXE. Neste último caso, a tarefa pode continuar completamente independente do seu aplicativo, e o sistema operacional cuida da multitarefa e da divisão de tempo.
Sempre que você ceder temporariamente o processador dentro de um procedimento de evento, verifique se o procedimento não é executado novamente de uma parte diferente do código antes que a primeira chamada retorne; Isso pode causar resultados imprevisíveis. Além disso, não use DoEvents se outros aplicativos puderem interagir com seu procedimento de maneiras imprevistas durante o tempo em que você cedeu o controle.
Exemplo
Este exemplo usa a função DoEvents para fazer com que a execução ceda ao sistema operacional uma vez a cada 1000 iterações do loop. DoEvents retorna o número de formulários do Visual Basic abertos, mas somente quando o aplicativo host é 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.
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.