Code:
'Put in a class module 
Option Explicit

Private Declare Function QueryPerformanceFrequencyAny Lib "kernel32" Alias _
                                                      "QueryPerformanceFrequency" (lpFrequency As Any) As Long
Private Declare Function QueryPerformanceCounterAny Lib "kernel32" Alias _
                                                    "QueryPerformanceCounter" (lpPerformanceCount As Any) As Long

Dim startTime As Date
Dim mFrequency As Currency, mStartTime As Currency, mEndTime As Currency

Private Sub Class_Initialize()
    QueryPerformanceFrequencyAny mFrequency
End Sub

Public Sub SetTime(NST As String)
    startTime = NST
    QueryPerformanceCounterAny mStartTime    'reset
End Sub

Public Function GetTime() As Date
    QueryPerformanceCounterAny mEndTime
    GetTime = DateAdd("s", Math.Round((mEndTime - mStartTime) / mFrequency), startTime)
End Function
Keeps a running clock. Set a start time for it and it will keep the time up to date. Useful for attic autobuying, displaying NST, or anything else that is time-related.

Usage:
Code:
    Dim nc As NeoClock
    Set nc = New NeoClock
    Debug.Print "StartTime: 7:31:28 AM"
    nc.SetTime ("7:31:28 AM")
    MSToWait 4000
    Debug.Print "GetTime: " & nc.GetTime()
    'StartTime: 7:31:28 AM
    'GetTime: 7:31:32 AM