Nota: A função, método, objeto ou propriedade descrita neste tópico está desativada se o Serviço Microsoft Jet Expression estiver em execução no modo sandbox, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, procure "modo sandbox" na Ajuda.

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

Sintaxe

DoEvents ( )

Observações

A função DoEvents devolve um Número Inteiro que representa o número de formulários abertos em versões autónomas do Microsoft Visual Basic, como o 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 cativação para o processador é melhor conseguida com um Temporizador ou delegando a 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 ceder temporariamente ao 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 deu controlo.

Exemplo

Nota: Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

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, OpenFormsFor 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 IfNext I    ' Increment loop counter.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.