Тема: Запуск макроса в AutoCad из Excel

Пытаюсь сделать обработку dwg файлов из Excel. (2000 офис, 2005 Autocad)
Библиотека "AutoCAD 2005 Type Library" подключена
Не получается запустить макрос из проекта.
Код в AutoCAD:

Sub MakeSpec()
Dim a As AcadDocument
For Each a In ThisDrawing.Application.Documents
    a.Activate
    ThisDrawing.SendCommand "z-clear-empty-text" & vbCr
    ThisDrawing.SendCommand "-purge" & vbCr & "a" & vbCr & vbCr & "n" & vbCr
    ThisDrawing.SendCommand "ai_selall" & vbCr
    ThisDrawing.SendCommand "attout_my" & vbCr
    ThisDrawing.SendCommand "qsave" & vbCr
    ThisDrawing.SendCommand "close" & vbCr
Next
End Sub

Код в EXCEL:

Sub ЗагрузкаAcad()
Dim DwgFileName As String
Dim FileName As String
strFileName = "C:\test.dwg"
CreateObject ("AutoCAD.Application")
ACADApp.Documents.Open DwgFileName
Set AcadDoc = ACADApp.ActiveDocument
FileName = "C:\Proba.dvb"
LoadDVB FileName
AcadDoc.Application.RunMacro "Proba.dvb!Module1.MakeSpec"
End Sub

На последней строке выдает ошибку.
Пытался по-всякому ее изменять, но никак.
Также попытался непосредственно из excel печатать в командной строке. Вместо строки, где должен выполняться макрос (и где выдает ошибку) пытался написать следующее:

ThisDrawing.SendCommand "z-clear-empty-text" & vbCr

или

AcadDoc.Application.ActiveDocument.SendCommand "z-clear-empty-text" & vbCr

Оба кода не работают.
Помогите разобраться с проблемой.

Re: Запуск макроса в AutoCad из Excel

> Loner Wanderer
Наверное автокад не может понять, что это за команда: "z-clear-empty-text"

Re: Запуск макроса в AutoCad из Excel

Кстати, что это за команда?

Re: Запуск макроса в AutoCad из Excel

Это запуск лиспа по очистке чертежей от пустых текстов. Но это не важно.
Ругается (как я понял) именно на метод
.SendCommand
А вот как правильно написать (и можно ли вообще это сделать из Excel) - я не знаю.

Re: Запуск макроса в AutoCad из Excel

Может я некорректно написал, но сам макрос в Autocad работает без проблем (из автокада). Проблема в его запуске из Excel.

Re: Запуск макроса в AutoCad из Excel

Sub MakeSpec()
Dim a As AcadDocument
For Each a In ThisDrawing.Application.Documents
    a.Activate
    'ThisDrawing.SendCommand "z-clear-empty-text" & vbCr
    'ThisDrawing.SendCommand "-purge" & vbCr & "a" & vbCr & vbCr & "n" & vbCr
    ThisDrawing.SendCommand "ai_selall" & vbCr
    'ThisDrawing.SendCommand "attout_my" & vbCr
    'ThisDrawing.SendCommand "qsave" & vbCr
    ThisDrawing.SendCommand "close" & vbCr
Next
End Sub
Sub ЗагрузкаAcad()
Dim DwgFileName As String
Dim FileName As String
DwgFileName = "I:\InGeo\Convert\ee1.dwg"
Set AcadApp = CreateObject("AutoCAD.Application")
AcadApp.Documents.Open DwgFileName
Set AcadDoc = AcadApp.ActiveDocument
FileName = "I:\InGeo\Convert\Examples.dvb"
LoadDVB FileName
AcadApp.RunMacro "I:\InGeo\Convert\Examples.dvb!Module1.MakeSpec"
End Sub
'Проверено,этот вариант работает на ACAD 2004
'**************************************
' А это авторский вариант на сайте
' Неверно имя переменной strFileName (объявлено  Dim DwgFileName As String
' И надо Set AcadApp=CreateObject("AutoCAD.Application")
'**************************************
'Sub ЗагрузкаAcad()
'Dim DwgFileName As String
'Dim FileName As String
'strFileName = "C:\test.dwg"
'CreateObject ("AutoCAD.Application")
'ACADApp.Documents.Open DwgFileName
'Set AcadDoc = ACADApp.ActiveDocument
'FileName = "C:\Proba.dvb"
'LoadDVB FileName
'AcadDoc.Application.RunMacro "Proba.dvb!Module1.MakeSpec"
'End Sub

Re: Запуск макроса в AutoCad из Excel

> PICH
Тут наверное имеется ввиду что файл Лисп
не выполняется
Нужно его подгружать в каждый файл ели
заранее он не включен в StartUp, примерно:

ThisDrawing.SendCommand "(load " & (chr(34) & "MyLispFile.lsp" & chr(34) & ") "

а потом уже эта строчка:

ThisDrawing.SendCommand "z-clear-empty-text" & vbCr

(без проверки)
~'J'~