Função de suspensão VBA

A função de suspensão no VBA é na verdade uma função do Windows. É semelhante à função de espera no VBA. É usado para diminuir a velocidade ou pausar ou podemos dizer interromper a execução de um código específico por um tempo especificado. A função de suspensão precisa ser chamada no VBA enquanto a declara no código. Como fazemos isso, aprenderemos no tópico de hoje.

Conforme explicado acima, o VBA Sleep é uma função do Windows e está presente no banco de dados do kernel do Windows. O método de declarar e chamar a função de suspensão no VBA é diferente para sistemas operacionais de 32 bits e sistemas operacionais de 64 bits. É basicamente uma função de API do Windows.

A sintaxe para usar a função VBA Sleep é a seguinte:

Sono (tempo em mili segundos)

Portanto, se precisarmos desacelerar ou interromper o código por 1 segundo, precisamos escrever o código como:

 Sleep 1000 

1000 é o mili segundos que é igual a 1 segundo e desacelera o código por 1 segundo. Se quisermos abrandar o código por 5 segundos, o código será:

 Sleep 5000 

A declaração para a função sleep é a seguinte:

 #Se o VBA7, então, 'O Excel 2010 ou posterior declara publicamente o PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 ou anterior declara público o Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If 
Nota: Antes de usar a função dormir, é preciso ter em mente uma coisa. Precisamos usar essa função em módulos, não nos objetos do excel. Para usar o VBA para garantir que a guia do desenvolvedor esteja ativada na guia arquivos na seção de opções.

Como usar a função de suspensão do Excel VBA?

Vamos aprender como usar uma função VBA Sleep com alguns exemplos no Excel.

Você pode fazer o download deste modelo do Excel VBA Sleep aqui - Modelo do Excel VBA Sleep

Função Dormir VBA - Exemplo # 1

O que vamos fazer neste exemplo é exibir uma mensagem ao usuário que a macro será interrompida por cinco segundos. E exatamente após cinco segundos, queremos que apareça uma segunda mensagem que diz que a macro foi retomada.

Siga as etapas abaixo para usar a função Sleep no Excel VBA:

Etapa 1: Vá para a guia Desenvolvedor e clique em Visual Basic para abrir o VB Editor.

Etapa 2: Quando o Editor do VB estiver aberto, clique na guia Inserir e, em seguida, clique nos módulos para inserir um novo módulo.

Etapa 3: Agora use a declaração de declaração para usar a função de suspensão. Como eu estou usando o sistema operacional Windows de 64 bits, usarei a declaração de declaração para o mesmo.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Etapa 4: Agora declare a sub-função para começar a escrever o código.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Subamostra () End Sub 

Etapa 5: Use a função Mgsbox para exibir a mensagem de que a macro será pausada por cinco segundos.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro" será interrompido por cinco segundos "End Sub 

Etapa 6: use a função Sleep para pausar a macro por cinco segundos.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro será pausado por cinco segundos" Sleep 5000 End Sub 

Etapa 7: Agora use a função msgbox para exibir a mensagem de que a macro foi retomada.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro será pausado por cinco segundos" Sleep 5000 MsgBox "Macro foi retomada" End Sub 

Etapa 8: execute o código a partir do botão de execução fornecido ou pressione F5 para ver o resultado. Vemos que a primeira mensagem é exibida.

Etapa 9: quando clicamos em Ok e esperamos cinco segundos, vemos outra mensagem.

Houve uma pausa por cinco segundos entre as duas mensagens.

Função Dormir VBA - Exemplo # 2

Agora, o que faremos em outro exemplo é que tenho quatro variáveis ​​A, B, C e D. Primeiro, quero adicionar o valor de A e B e exibi-lo e, após 5 segundos, quero exibir o valor de a adição de A, B, C e D.

Siga as etapas abaixo para usar a função Sleep no Excel VBA:

Etapa 1: Vá para a guia Desenvolvedor e clique em Visual Basic para abrir o VB Editor.

Etapa 2: Quando o Editor do VB estiver aberto, clique na guia Inserir e, em seguida, clique nos módulos para inserir um novo módulo.

Etapa 3: Agora use a declaração de declaração para usar a função de suspensão. Como eu estou usando o sistema operacional Windows de 64 bits, usarei a declaração de declaração para o mesmo.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Etapa 4: Agora declare a sub-função para começar a escrever o código.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Etapa 5: Declare seis variáveis ​​A, B, C, D, X e Y para armazenar valores.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro Final Sub 

Etapa 6: dê valores aleatórios para A, B, C e D.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro A = 10 B = 15 C = 20 D = 25 End Sub 

Etapa 7: armazene o valor de A + B em X.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Etapa 8: Exiba o valor de X.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Etapa 9: Agora use a função de suspensão para fazer uma pausa por cinco segundos.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Etapa 10: Agora, na variável Y, armazene o valor de X + C + D e exiba-o.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Como Inteiro A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Suspensão 5000 Y = X + C + D MsgBox Y Fim Sub 

Etapa 11: execute o código acima usando o botão de execução fornecido ou pressionando a tecla F5 e veja o resultado. Vemos que a primeira mensagem é exibida como.

Etapa 12: Pressione OK e a macro aguarda cinco segundos e exibe o próximo resultado.

Função Dormir VBA - Exemplo # 3

Neste exemplo, queremos renomear duas planilhas 1 e 2 como Anand e Aran, respectivamente. Mas a duração do tempo entre os dois deve ser de cinco segundos. Basicamente, queremos que a macro seja pausada após renomear a planilha 1 e renomear a planilha 2. Atualmente, as duas planilhas são nomeadas da seguinte maneira:

Siga as etapas abaixo para usar a função Sleep no Excel VBA:

Etapa 1: Vá para a guia Desenvolvedor e clique em Visual Basic para abrir o VB Editor.

Etapa 2: Quando o Editor do VB estiver aberto, clique na guia Inserir e, em seguida, clique nos módulos para inserir um novo módulo.

Etapa 3: Agora use a declaração de declaração para usar a função de suspensão. Como eu estou usando o sistema operacional Windows de 64 bits, usarei a declaração de declaração para o mesmo.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Etapa 4: Agora declare a sub-função para começar a escrever o código.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Etapa 5: ative a planilha 1 e renomeie-a pelo seguinte código:

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Planilhas ("Plan1"). Ative planilhas ("Plan1"). Nome = "Anand" MsgBox "Planilha 1 renomeada" End Sub 

Etapa 6: Agora use a função de suspensão para usar o atraso por cinco segundos.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Ative Worksheets ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 renomeado" Sleep 5000 End Sub 

Etapa 7: Agora renomeie a planilha 2 pelo seguinte código.

Código:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Planilhas ("Sheet1"). Ative planilhas ("Sheet1"). Nome = "Anand" MsgBox "Planilha 1 renomeada" Sleep 5000 Worksheets (" Sheet2 "). Ativar planilhas (" Sheet2 "). Nome =" Aran "MsgBox" Planilha 2 renomeada "End Sub 

Etapa 8: Agora execute o código e vemos a primeira mensagem ser exibida.

Além disso, podemos verificar se a folha 1 foi renomeada.

Etapa 9: pressione ok e aguarde cinco segundos para que a próxima mensagem e a segunda folha sejam renomeadas.

A segunda folha também é renomeada.

Coisas para lembrar

  • VBA Sleep é uma função da janela, portanto, para usar, precisamos usar declarações de declaração.
  • Existem diferentes declarações de declaração para diferentes tipos de sistemas operacionais.
  • O simples uso do VBA Sleep congela a macro pelo tempo fornecido.
  • O parâmetro de tempo fornecido para a função de suspensão do VBA está em milissegundos.

Artigos recomendados

Este é um guia para a função de suspensão do VBA. Aqui discutimos como usar a Função de suspensão do VBA do Excel, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Função VBA VLOOKUP
  2. Função DCOUNT no Excel
  3. Colar de cópia do VBA
  4. Função COMBIN no Excel

Categoria: