Тема: Переход из Excel в AutoCAD и обратно при позднем связывании
Макрос написан и запускается из Excel, считаем что AutoCAD уже открыт.
Нужно что-бы произошел переход из Excel в AucoCAD, в нем берутся координаты, затем возврат к окну Excel.
При использовании раннего связывания все работает:
Private Sub test() Dim point1 As Variant, point2 As Variant Dim objApp As AcadApplication, objDoc As AcadDocument Set objApp = GetObject(, "AutoCAD.Application") Set objDoc = objApp.ActiveDocument AppActivate objApp.Caption 'передаем фокус окну AutoCAD 'выбор точек AutoCAD point1 = objDoc.Utility.GetPoint(, vbCrLf & ": ") point2 = objDoc.Utility.GetPoint(point1, vbCrLf & ": ") objApp.WindowState = acMin 'минимизация окна AutoCAD AppActivate Application.Caption 'передаем фокус окну Excel Application.Windows.Item(1).Activate End Sub
Но нужно использовать позднее связывание т.е. с отключенной библиотекой AutoCAD? так как макрос может быть использован с отсутствующей библиотекой AutoCAD, в таком варианте не работает:
Private Sub test() Dim point1 As Variant, point2 As Variant Dim objApp As Object, objDoc As Object Set objApp = GetObject(, "AutoCAD.Application") Set objDoc = objApp.ActiveDocument AppActivate objApp.Caption 'передаем фокус окну AutoCAD 'выбор точек AutoCAD point1 = objDoc.Utility.GetPoint(, vbCrLf & ": ") point2 = objDoc.Utility.GetPoint(point1, vbCrLf & ": ") objApp.WindowState = acMin 'минимизация окна AutoCAD AppActivate Application.Caption 'передаем фокус окну Excel Application.Windows.Item(1).Activate End Sub
ошибка в
objApp.WindowState = acMin
пишет что недопустимый аргумент, получается что objApp.WindowState = Empty
Что не так делаю? Заранее спасибо за помощь.