Есть схема несколько напоминающая пришивание пиджака к пуговице, но она работает:
1.Вводишь в VB-программу модуль класса StartMyProg а в этом модуле процедуру запуска VB-программы StartVB
2.Компилируешь VB-программу в MyProg.dll-file
3.Создаешь проект VBA MyProj.dvb и подсоединяешь к нему свой MyProg.dll-file
через Tools>References>Browse:
Sub StartVBA()
On Error GoTo ErrLbl
Dim vb As MyProg
Set vb = New MyProg.StartMyProg
vb.StartVB ThisDrawing 'старт и передача в VB-программу входа в чертеж
ErrLbl: MsgBox "Error StartVB" & vbCrLf & CStr(Err.Number) & vbCrLf & CStr(Err.Description) & vbCrLf & CStr(Err.Source)
End Sub
4.И наконец пишешь на ЛИСПе программку запуска макроса в виде команды AutoCAD:
(defun C:MyStart (/ PATH)
;(setq PATH "C:\\Program Files\MyProj.dvb")
;(vl-vbaload PATH)
(vl-vbarun "StartVBA"))
Если что-то напутал, не взыщи, принцип надеюсь понятен.
Удачи