Sumário
O Word não tem um método interno para atrasar a execução de uma macro, mas soluções alternativas podem ser usadas para obter esse efeito.
Mais informações
A Microsoft fornece exemplos de programação somente para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um propósito específico. Este artigo presume que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas usadas para criar e depurar procedimentos. Engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Para obter mais informações sobre como usar o código de exemplo neste artigo, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
212536 OFF2000: como executar o código de exemplo de artigos da Base de Conhecimento
Você pode usar um dos métodos a seguir para atrasar a execução de uma macro usando o Visual Basic for Applications.
Método 1: Usar um vazio para... Next Loop
Uma desvantagem desse método é que não há nenhuma maneira direta de determinar a quantidade exata de tempo que o programa leva para executar o loop. A quantidade de tempo depende da velocidade do seu computador. O código a seguir executa um loop que não faz nada, mas leva algum tempo.
Sub MyDelayMacro
For iCount = 1 to 1000
Next iCount
End Sub
Método 2: Usar uma chamada de API para suspender a execução do Word
Use uma chamada de API para suspender a execução do Word para um determinado período de tempo.
O Kernel32 contém uma função que pausa a execução do programa para um determinado período de tempo, especificado em milissegundos. Para que você possa usar a função, ela deve primeiro ser declarada na seção Declaração geral do módulo no qual ele será usado:
Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Use a sintaxe a seguir para chamar a função de suspensão :
Sub Sleep()
Sleep 1000 'Implements a 1 second delay
End Sub
Método 3: Usar o método OnTime
Use o método OnTime para definir uma quantidade de tempo de pausa. O método OnTime usa a seguinte sintaxe:
expressão. OnTime (quando, nome, tolerância)Como o argumento de nome requer o nome de uma macro para ser executada, você deve criar duas macros: a primeira macro que contém a chamada do método OnTime e outros comandos relevantes à sua macro e a segunda macro seja executada quando o tempo alocado. A segunda macro pode ser uma macro "fictícia" que não faz nada.
Este exemplo executa a macro chamada "MyDelayMacro" 15 segundos após que o exemplo é executado.
Sub MyMainMacro()
' Pause for 15 seconds.
Application.OnTime When:=Now + TimeValue("00:00:15"), _
Name:="MyDelayMacro"
End Sub
Public Sub MyDelayMacro()
' Place your delayed macro commands here.
MsgBox "This macro runs after 15 seconds."
End Sub
Para obter mais informações sobre como usar o método OnTime, no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic , no menu Ajuda , digite método OnTime no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir o tópico.
Referências
Para obter informações adicionais sobre como obter ajuda com o Visual Basic for Applications, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
212623 WD2000: recursos de programação de Macro
226118 OFF2000: recursos de programação para Visual Basic for Applications