Попробуйте такого типа функцию:
Public Sub HourGlass(obj As Object, fOn As Boolean)
Dim PauseTime, Start
On Error Resume Next
If Not fOn Then
obj.MousePointer = fmMousePointerHourGlass ' vbHourglass
fOn = True
Else
obj.MousePointer = fmMousePointerDefault 'vbDefault
End If
obj.Repaint ' Перерисовать форму
PauseTime = 1 ' Set duration.
Start = Timer ' Set start time.
Do While Timer < Start + PauseTime
DoEvents ' Yield to other processes.
Loop
End Sub