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 Base
Pode 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 iCount
End 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 delay
End 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 Sub
Public 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