Thanks Harleyquinn, that seems incredibly simple, but I'll try it. I found the code below to do it in one of my VB6 reference books, but it doesn't work.
Private lOrigPointer As Long
Private vUseObject As Variant
Public Sub SetCursor(Optional UseObject As Variant, Optional Pointer As Variant)
Dim lNewPointer As Long
On Error Resume Next
'Save the current cursor
If IsMissing(UseObject) Then
lOrigPointer = Screen.MousePointer
Else
lOrigPointer = UseObject.MousePointer
Set vUseObject = UseObject
End If
'Default to Hourglass
lNewPointer = vbHourglass
If Not IsMissing(Pointer) Then
If IsNumeric(Pointer) Then
'Substitute with your own pointer if needed
lNewPointer = Pointer
End If
End If
'Set the pointer
If IsMissing(UseObject) Then
Screen.MousePointer = lNewPointer
Else
UseObject.MousePointer = lNewPointer
End If
End Sub
Private Sub Class_Terminate()
On Error Resume Next
'Restore Pointer
If IsEmpty(vUseObject) Then
Screen.MousePointer = lOrigPointer
Else
vUseObject.MousePointer = lOrigPointer
End If
End Sub