Может это наведет на идеи:
Для того, чтобы определить сколько милисекунд прошло с момента запуска Windows, достаточно воспользоваться нижеприведённой функцией WinAPI
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Private Sub GetMilliSeconds()
MsgBox "С момента запуска Windows прошло : " & _
GetTickCount & " милисекунд", , ""
End Sub
Данная функция может быть полезна, например, при точном определении времени выполнения макроса, т.е. в тех случаях, когда округление до секунды, нежелательно.
Если Вы хотите вызвать эту функцию из ячеек рабочего листа, то в MS Excel 97 для этого можно использовать, например, функцию рабочего листа =ВЫЗВАТЬ()
В следующих же версиях, вызов этой функции из ячеек листа заблокирован разработчиками, поэтому, Вам, по всей видимости, придётся воспользоваться пользовательской функцией, например =GetTickMilliSecond()
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Function GetTickMilliSecond&()
Application.Volatile True
GetTickMilliSecond& = GetTickCount
End Function
Для того, чтобы определить сколько милисекунд выполнялся необходимый макрос, достаточно воспользоваться нижеприведённой функцией WinAPI
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Private Sub YourMacro()
iMlSeconds& = GetTickCount
'Здесь должен быть код Вашей программы.
MsgBox "Время выполнения макроса составило " & _
GetTickCount - iMlSeconds& & " милисек.", vbExclamation, ""
End Sub