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

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.