' make a modeless form modal
'
' this procedure should be called by passing TRUE
' in the 2nd argument to make the form modal, and
' called again with FALSE in the 2nd argument when
' the form is being unloaded.
'
' Private Sub Form_Load()
' MakeModalForm Me, True
' End Sub
' Private Sub Form_Unload(Cancel As Integer)
' MakeModalForm Me, False
' End Sub
Sub MakeModalForm(frm As Form, ByVal State As Boolean)
Static saveForms As Collection
Dim f As Form
If State Then
' disable all other forms in the project
' but remember which were enabled
Set saveForms = New Collection
For Each f In Forms
If Not (f Is frm) And frm.enabled Then
saveForms.Add f
f.enabled = False
End If
Next
ElseIf Not (saveForms Is Nothing) Then
' restore the Enabled property of other forms
For Each f In saveForms
f.enabled = True
Next
Set saveForms = Nothing
End If
End Sub