@Remou's Debug.Print will error out if the form isn't open.
Most Access developer's import an IsLoaded() function into their database and use it. The code in my version of it (which may or may not be edited from the original MS version) is this:
Function IsLoaded(ByVal strFormName As String) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
Const conObjStateClosed = 0
Const conDesignView = 0
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If Forms(strFormName).CurrentView <> conDesignView Then
IsLoaded = True
End If
End If
End Function
To use that from Excel, you could rewrite it thus:
Function IsLoaded(ByVal strFormName As String, objAccess As Object) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
Const conObjStateClosed = 0
Const conDesignView = 0
Const acSysCmdGetObjectState = 10
Const acForm = 2
If objAccess.SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If objAccess.Forms(strFormName).CurrentView <> conDesignView Then
IsLoaded = True
End If
End If
End Function
(I didn't test that from Excel, but you get the idea)