Bom, realmente não dá mesmo segundo o msdn... para estes casos ou fazer o q o luiz citou, usando hide, ou usar o unload no form modal... Não encontrei API para isso... talvez tenha mas no momento desconheço... daí podemos fazer gambis mesmo como o Maycon citou ...
.
Já tive um problema semelhante... só q no meu caso a necessidade de usar modal era para não executar a próxima linha depois de chamar o form modal, so qdo este fosse terminado. Só q era um MDIchild e como vcs sabem MDI não permite forms modais então a gambi foi a seguinte:
'Num módulo
Global F As Boolean
F = False
Private Sub Command1_Click()
Form2.Show
Do While Not F
DoEvents
Loop
MsgBox "Teste"
End Sub
Bom, era um código parecido com esse, só acrescentei uma procedure para desabilitar os forms q eu necessitava, simulando um form modal no MDI... Desse jeito q coloqei acima vai ficar num loop infinito até F ser verdadeiro, o q acontece qdo eu clico num botão do Form2. Depois ele sai do loop e continua o programa... :)
Não sei se a idéia serve para vc ou se dá pra ajudar ae...
Tentei...
at+