Compartilhar via


Função DoEvents

Gera a execução para que o sistema operativo possa processar outros eventos.

Sintaxe

DoEvents( )

Comentários

A função DoEvents devolve um Número Inteiro que representa o número de formulários abertos em versões autónomas do Visual Basic, como Visual Basic, Professional Edition. O DoEvents devolve zero em todas as outras aplicações.

O DoEvents passa o controlo para o sistema operativo. O controlo é devolvido depois de o sistema operativo terminar de processar os eventos na fila e todas as chaves na fila SendKeys terem sido enviadas .

O DoEvents é mais útil para aspetos simples, como permitir que um utilizador cancele um processo depois de ter começado, por exemplo, uma pesquisa de um ficheiro. Para processos de execução prolongada, a produção do processador é melhor conseguida através da utilização de um Temporizador ou da delegação da tarefa a um componente EXE activeX. Neste último caso, a tarefa pode continuar completamente independente da sua aplicação e o sistema operativo trata da multitasking e da segmentação de tempo.

Sempre que produzir temporariamente o processador num procedimento de evento, certifique-se de que o procedimento não é executado novamente a partir de uma parte diferente do código antes da primeira chamada ser devolvida; isto pode causar resultados imprevisíveis. Além disso, não utilize DoEvents se outras aplicações possam interagir com o seu procedimento de formas imprevistas durante o tempo em que tiver dado controlo.

Exemplo

Este exemplo utiliza a função DoEvents para fazer com que a execução produza para o sistema operativo uma vez a cada 1000 iterações do ciclo. O DoEvents devolve o número de formulários do Visual Basic abertos, mas apenas quando a aplicação anfitriã é o 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.