Olá Vaughyman e Elieser, olha existem 2 jeitos uma mais eficiente q o outro mas sem usar API.
O primeiro é muito simples, ao chamar o seu form child q será modal vc coloca apenas uma linha no evento Deactivate:
Private Sub Form_Deactivate()
Me.ZOrder 0
End Sub
Apenas isso. Vc não poderá acessar os outros forms child (somente forms child, forms q não são child poderão ser acessados normalmente) só q tem um defeito, o usuário poderá mover, redimensionar (se for caso) e fechar qualquer outro form.
O outro modo é vc criar 2 Sub's e colocar no Módulo:
Sub MoverFrm(nomeFrm As String)
Dim frm As Form
For Each frm In Forms
If frm.Name <> nomeFrm And frm.Name <> MDIForm1.Name Then frm.Enabled = True
Next frm
End Sub
Sub NaoMoverFrm(nomeFrm As String)
Dim frm As Form
For Each frm In Forms
If frm.Name <> nomeFrm And frm.Name <> MDIForm1.Name Then frm.Enabled = False
Next frm
End Sub
No evento Load do form child q será modal coloque assim:
Private Sub Form_Load()
NaoMoverFrm (Me.Name)
End Sub
e para q os outros forms fiquem habilitados novamente coloque assim no evento unload do form child modal:
Private Sub Form_Unload(Cancel As Integer)
MoverFrm (Me.Name)
End Sub
Esta última opção é bem eficiente e fica praticamente igual a um form modal onde os outros forms, com exceção ao MDIForm, fica desabilitados e só poderão ser acessados novamente depois q o form child modal for fechado.
Elieser, infelizmente não encontrei dicas aqui q fazem um form child parecer modal, encontrei algumas q falam em on top mas não do tipo modal, se puder coloque aqui depois por favor, obrigado!

espero q ajude de alguma forma
t+