Filipe,
A questão é a seguinte. Não é possível usar os forms do VBA dentro do VisualLISP de forma direta, apenas usando comandos.
Por outro lado, o VisualLISP suporta a utilização de interfaces ActiveX a, sendo assim, você pode criar um Form em VB num projeto ActiveX e consumi-lo dentro do VisualLISP.
Funciona mais ou menos assim:
1) No projeto VB ActiveX:
Code:
Public Sub Metodo1(ByVal val As Long)
MsgBox "Metodo1: " + Str(val)
End Sub
Public Sub Metodo2(ByVal strVal As String)
MsgBox "Metodo2: " + strVal
End Sub
No exemplo, estou considerando que o projeto VB se chama "SeuActiveX" e o objeto exportado se chama "ObjetoExportado". Você pode usar qualquer nome que quiser.
2) No VisualLISP:
Code:
(defun teste()
(vl-load-com)
;;efetua a leitura do servidor ActiveX
(setq meuObj (vlax-invoke-method (vlax-get-acad-object) "GetInterfaceObject" "SeuActiveX.ObjetoExportado"))
;;aciona um método
(vlax-invoke-method meuObj "Metodo1" 100)
;;aciona outro metodo
(vlax-invoke-method meuObj "Metodo2" "Uma mensagem!!!")
(vlax-release-object meuObj)
)
Veja este artigo também, parece interessante:
http://aec.cadalyst.com/aec/article/....jsp?id=100883
Espero que ajude.
Abraços,
Fernando Malard.