If all you need is a timer, then you could use:
1) ccrp high performance timer dll
http://ccrp.mvps.org/index.html?controls/ccrptimer6.htm (their documentation is easy to follow)
2) API SetTimer. The following code can be placed in a module and will perform a callback on the DoEvent method of m_objEventClass object
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private m_objEventClass As Object
Private m_lngTimerID As Long
Public Sub PostEvent(objEventClass As Object, lngTimerInterval as long)
Debug.Print "Posting Event"
Set m_objEventClass = objEventClass
m_lngTimerID = SetTimer(0, 0, lngTimerInterval, AddressOf PostEventCallback)
End Sub
Private Sub PostEventCallback(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal SysTime As Long)
Debug.Print "Doing Callback"
KillTimer 0, m_lngTimerID
m_objEventClass.DoEvent
Set m_objEventClass = Nothing
End Sub