Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As LongConst GWL_STYLE = (-16)Const WS_DISABLED = &H8000000' Return True if the form is modal'' Note: if an application has only one visible' form, this function considers it as modalFunction IsFormModal(frm As Form) As Boolean Dim f As Form For Each f In Forms If Not (f Is frm) Then If (GetWindowLong(f.hWnd, GWL_STYLE) And WS_DISABLED) = 0 Then ' there is another enabled form, so this form ' can't be modal Exit Function End If End If Next ' all other forms are disabled, therefore this form is modal IsFormModal = True End Function