Sammanfattning
Har inte en inbyggd metod för att fördröja körningen av ett makro i Word, men lösningarna kan användas för att uppnå den här effekten.
Mer Information
Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till med att förklara funktionen hos en viss procedur, men kan inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.
Mer information om hur du använder exempelkoden i den här artikeln klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
212536 OFF2000: hur du kör exempelkod från artiklar i Knowledge Base
Du kan använda någon av följande metoder för att fördröja körningen av ett makro i Visual Basic for Applications.
Metod 1: Använd en tom för... Nästa Loop
En nackdel med denna metod är att det finns inget direkt sätt att fastställa det exakta beloppet som programmet tar för att köra loopen. Hur lång tid beror på hastigheten på din dator. Följande kod körs en loop som ingenting men ta lite tid.
Sub MyDelayMacro
For iCount = 1 to 1000
Next iCount
End Sub
Metod 2: Använda ett API-anrop för att avbryta körningen av Word
Använda API-anrop för att avbryta körningen av Word för en fast tid.
Kernel32 innehåller en funktion som stoppar programkörningen för en tidsperiod som anges i millisekunder. Om du vill använda funktionen måste deklareras det först i det allmänna deklarationsavsnittet i modulen där den ska användas:
Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Använd följande syntax för att anropa funktionen viloläge :
Sub Sleep()
Sleep 1000 'Implements a 1 second delay
End Sub
Metod 3: Använd OnTime-metoden
Använd metoden OnTime för att ange en viss tid för att pausa. OnTime -metoden använder du följande syntax:
uttryck. OnTime (när, namn, tolerans)Eftersom argumentet namn kräver namnet på ett makro som ska köras, måste du skapa två makron: det första makrot ska innehålla metodanropet OnTime och andra kommandon som är relevanta för ditt makro och det andra makrot ska köras när den tilldelade tiden har passerat. Det andra makrot kan vara ett ”dummy” makro som händer ingenting.
I det här exemplet körs makrot med namnet ”MyDelayMacro” 15 sekunder från det att exemplet körs.
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
Mer information om hur du använder metoden OnTime i Visual Basic Editor klickar du på Hjälp om Microsoft Visual Basic på Hjälp -menyn, Skriv OnTime metod i Office-assistenten eller Svarsguiden och klicka på Sök i avsnittet.
Referenser
Mer information om hur du får hjälp med Visual Basic for Applications klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
212623 WD2000: programmeringsresurser för makro
226118 OFF2000: programmeringsresurser för Visual Basic for Applications