With Word 2010 on my laptop, using:
Code:
Sub Test()
' Dimension Variables
Dim eTime As Single, Rvn As Revision, i As Long
' Start Timing
eTime = Timer
With ActiveDocument.Range
For Each Rvn In .Revisions
With Rvn
End With
Next
' Calculate elapsed time
eTime = (Timer - eTime + 86400) Mod 86400 ' Just in case execution time spans midnight
MsgBox "Execution took " & Format(eTime / 86400, "hh:mm:ss")
' Start Timing
eTime = Timer
For i = 1 To .Revisions.Count
With .Revisions(i)
End With
Next
' Calculate elapsed time
eTime = (Timer - eTime + 86400) Mod 86400 ' Just in case execution time spans midnight
MsgBox "Execution took " & Format(eTime / 86400, "hh:mm:ss")
' Start Timing
eTime = Timer
For i = .Revisions.Count To 1 Step -1
With .Revisions(i)
End With
Next
' Calculate elapsed time
eTime = (Timer - eTime + 86400) Mod 86400 ' Just in case execution time spans midnight
MsgBox "Execution took " & Format(eTime / 86400, "hh:mm:ss")
End With
End Sub
the first loop took less than 1 second, the next two took about 1 second each.
Note: It's hardly surprising that a VBA routine might use about 25% (and no more) of a quad-core CPU's capacity.