Изменить связи с Excel через VBA ?

Автор Тема: Изменить связи с Excel через VBA ?  (Прочитано 6786 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн KiralseАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Здравствуйте.

Ситуация следующая:
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.

Спасибо.
« Последнее редактирование: 01-06-2016, 22:09:31 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменить связи с Excel через VBA ?
« Ответ #1 : 01-06-2016, 22:09:13 »
Kiralse
Приветствую на форуме! Для начала перечитай у меня в подписи как правильно форматировать код на нашем форуме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменить связи с Excel через VBA ?
« Ответ #2 : 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
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн KiralseАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Re: Изменить связи с Excel через VBA ?
« Ответ #3 : 02-06-2016, 09:28:35 »
Спасибо, Александр.
Ушел взвешивать, трудоемкость сделать все руками или cвязаться в .NET.