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 ConhecimentoVocê 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 iCountEnd 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 delayEnd 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 SubPublic 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