Sumário

O Word não tem um método incorporado para atrasar a execução de uma macro, mas as soluções podem ser utilizadas para conseguir este efeito.

Mais informações

A Microsoft fornece exemplos de programação apenas a título ilustrativo, sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas que são utilizadas para criar e depurar procedimentos. Técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.Para mais informações sobre como utilizar o código de exemplo neste artigo, clique no número de artigo abaixo para visualizar o artigo na Microsoft Knowledge Base:

212536 OFF2000: como executar o código de exemplo artigos da Knowledge BasePode utilizar um dos seguintes métodos para atrasar a execução de uma macro utilizando o Visual Basic for Applications.

Método 1: Utilizar um vazio para... Ciclo seguinte

Uma desvantagem deste método é que não existe nenhuma forma directa para determinar a quantidade de tempo que o programa demora a executar o ciclo exacta. A quantidade de tempo depende da velocidade do computador. O seguinte código executa um loop que não faz nada, mas ocupam algum tempo.

Sub MyDelayMacro   For iCount = 1 to 1000   Next iCountEnd Sub

Método 2: Utilizar uma chamada da API para suspender a execução do Word

Utilize uma chamada da API para suspender a execução do Word para um período de tempo fixo.APIs Kernel32 contém uma função que interrompe a execução de um programa para um determinado período de tempo, especificado em milissegundos. Para poder utilizar a função, deve primeiro ser declarada na secção General Declarations do módulo no qual irá ser utilizado:

   Declare Sub Sleep Lib "kernel32" Alias "Sleep" _   (ByVal dwMilliseconds As Long)

Utilize a seguinte sintaxe para chamar a função de suspensão :

Sub Sleep()   Sleep 1000   'Implements a 1 second delayEnd Sub

Método 3: Utilizar o método de OnTime

Utilize o método OnTime para definir uma quantidade de tempo de espera. O método OnTime utiliza a seguinte sintaxe:

expressão. OnTime (quando, nome, tolerância)Uma vez que o argumento nome requer o nome de uma macro para ser executado, tem de criar duas macros: a primeira macro para conter a chamada de método de OnTime e outros comandos relevantes para a macro e a segunda macro seja executada quando o tempo atribuído passou. A segunda macro pode ser uma macro "manequim" que não faz nada.Este exemplo executa a macro com o nome "MyDelayMacro" 15 segundos desde 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 mais informações sobre como utilizar o método de OnTime, no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic , no menu Ajuda , escreva o método OnTime no Assistente do Office ou o Assistente de respostas e, em seguida, clique em Procurar para visualizar o tópico.

Referências

Para obter informações adicionais sobre como obter ajuda com o Visual Basic for Applications, clique no número de artigo abaixo para visualizar o artigo na Microsoft Knowledge Base:

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 subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.