Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 16 ноя 2018, 22:17

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Макрос для создания сущностей и связей
СообщениеДобавлено: 16 авг 2017, 12:38 
Не в сети

Зарегистрирован: 16 авг 2017, 11:45
Сообщений: 2
Использую Visio c: 2003
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Суть задачи: имея описание сущностей с десятками атрибутов и описанием связей между ними в Excel, сформировать макрос, чтобы можно было после правок в Excel не пересоздавать сущности или менять наименования всех атрибутов, а переформировать макрос и перезапустить в Visio.
Прошу помощи (книги, ссылки, примеры) для создания макроса, создающего несколько сущностей с атрибутами и связями между ними, с заданием наименований связей.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Макрос для создания сущностей и связей
СообщениеДобавлено: 16 авг 2017, 14:13 
Не в сети

Зарегистрирован: 16 авг 2017, 11:45
Сообщений: 2
Использую Visio c: 2003
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Выложил пример.
Прошу подсказать / дать направление, как:
1) макросом связать атрибуты а1 и b2
2) изменить "Физическое имя" связи.
Если есть справочник по свойствам "Entity" и "Relationship", буду очень благодарен.

Макрос, которым создана схема:
Sub a1()
Dim vsoLine, vsoEntity1, vsoEntity2 As Visio.Shape
Dim vsoCell1, vsoCell2 As Visio.Cell

Set vsoEntity1 = Application.ActiveWindow.Page.Drop(Application.Documents.Item("ENTITY_M.VSS").Masters.ItemU("Entity"), 1, 11)
Set vsoEntity2 = Application.ActiveWindow.Page.Drop(Application.Documents.Item("ENTITY_M.VSS").Masters.ItemU("Entity"), 3, 11)
Set vsoLine = Application.ActiveWindow.Page.Drop(Application.Documents.Item("ENTITY_M.VSS").Masters.ItemU("Relationship"), 2, 11)

Set vsoCell1 = vsoLine.CellsU("EndX")
Set vsoCell2 = vsoEntity1.CellsSRC(1, 1, 0)
vsoCell1.GlueTo vsoCell2

Set vsoCell1 = vsoLine.CellsU("BeginX")
Set vsoCell2 = vsoEntity2.CellsSRC(1, 1, 0)
vsoCell1.GlueTo vsoCell2

' vsoLine. = "ddd"

End Sub


Вложения:
.png
.png [ 118.42 Кб | Просмотров: 276 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Макрос для создания сущностей и связей
СообщениеДобавлено: 16 авг 2017, 15:14 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1187
Очков репутации: 100588

Добавить очки репутацииУменьшить очки репутации
Тяжелый случай...
Это решение поддерживается штатным аддоном. И вполне возможно, он будет конфликтовать с Вашим макросом. Причем сразу и не скажешь, в каких именно ситуациях.
Кроме того, штатный аддон собирает данные в свою внутреннюю структуру хранения данных и не предоставляет доступ к ней. Поэтому пункт "1) макросом связать атрибуты а1 и b2" явно недостижим.
Насчет "Физического имени" скорее всего то же.
То есть для своих макросов придется делать свои шейпы и работать с ними.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB