Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Kiralse от 01-06-2016, 17:37:10

Название: Изменить связи с Excel через VBA ?
Отправлено: Kiralse от 01-06-2016, 17:37:10
Здравствуйте.

Ситуация следующая:
AutoCAD 2016
Есть группа файлов. В каждом файле есть однотипные связи с Excel файлами (отличается в выборе диапазона столбцами).
Между файлами различие в связях номерами строк.

Есть потребность в макросе который бы по введенному номеру строки менял связи.
После долгих мытарств максимум чего удалось добиться это:

Код - Visual Basic [Выбрать]
  1.     Dim dictObjs As AcadDictionaries
  2.     Dim dictObj1 As AcadDictionary
  3.     Set dictObjs = Application.ActiveDocument.Dictionaries
  4.     Set dictObj1 = dictObjs.Item("ACAD_DATALINK")
  5.     Debug.Print dictObj1.Item(0).ObjectName ' выдает AcDbDataLink
Такого типа у меня нет и соответственно объект создать не удается.
Интернет не слишком помог. Есть некие ссылки на CAO - но из моих экспериментов выяснил, что он работает с подцепляемой базой данных (jet_dbsamples), что не совсем то.

Данный тип удалось найти в описании класса AcDb‎ (ObjectARX), но что это дает для  ‎VBA не понятно.

Прошу помочь выбраться из тупика идей. Работать с этим словарем как с другими не удается (какое-то отличие кроется именно в ACAD_DATALINK.

Спасибо.
Название: Re: Изменить связи с Excel через VBA ?
Отправлено: Александр Ривилис от 01-06-2016, 22:09:13
Kiralse
Приветствую на форуме! Для начала перечитай у меня в подписи как правильно форматировать код на нашем форуме.
Название: Re: Изменить связи с Excel через VBA ?
Отправлено: Александр Ривилис от 01-06-2016, 22:31:29
Такого типа у меня нет и соответственно объект создать не удается.
Ты сам ответил на свой вопрос. Средствами VBA ты результата не добьёшься. Так что или ObjectARX или .NET
Вот так можно работать со связями с Excel-файлом при помощи AutoCAD .NET API:
http://through-the-interface.typepad.com/through_the_interface/2014/02/inserting-a-cell-range-from-an-excel-sheet-as-an-autocad-table-using-net.html
http://through-the-interface.typepad.com/through_the_interface/2013/06/inserting-a-specific-excel-sheet-as-an-autocad-table-using-net.html
http://through-the-interface.typepad.com/through_the_interface/2007/08/creating-an-aut.html
http://through-the-interface.typepad.com/through_the_interface/2007/08/updating-an-exc.html
Название: Re: Изменить связи с Excel через VBA ?
Отправлено: Kiralse от 02-06-2016, 09:28:35
Спасибо, Александр.
Ушел взвешивать, трудоемкость сделать все руками или cвязаться в .NET.