All Forums
 Категория Visio
 Форум Вопросы и ответы
 Связанные фигуры
Author Previous Topic Topic Next Topic  

vis

47 Posts

Posted - 01/12/2011 :  13:02:02
Дорогие форумчане, подскажите пожалуйста решение задачки.
Имею два прямоугольника П1 и П2. Они соединены коннектором К1.
Выбираю прямоугольник П1, далее запускаю выполнение макроса, который должен написать в прямоугольнике П2 букву "А".
Если же я выбираю П2 и запускаю выполнение макроса, то в П1 должна появиться буква "А".
Как должен выглядеть этот самый макрос??
Это утрированная задачка. Смысл в том, что мне надо работать с шейпом, который соединен коннектором с выделенным мною шейпом (искомым шейпом).

GDK

Russia
90 Posts

Posted - 01/12/2011 :  15:32:50
quote:
Tumanov
Слишком много ошибок.
i = ActiveWindow.Selection.Item(1)
Это очень кривая запись.
Лучше было бы
Set sh = ActiveWindow.Selection.Item(1)
sh - это будет селектированный шейп.
Connects.ToSheet - тоже в корне неверно.
Connects - это коллекция. Для .ToSheet обязательно нужно указывать какой-то элемент коллекции. Например Connects(1).ToSheet. Здесь указан первый элемент коллекции.
Тогда вместо строчки
Set Active = ActivePage.Shapes(i).Connects.ToSheet
должно быть нечто похожее на
Set Active = sh.Connects(1).ToSheet
Если селектирован коннектор, то такой строчкой мы получим шейп, к которому он подключен. Только тогда уж логично было бы писать не Active, а Passive :)
А если второй конец коннектора тоже куда-то подключен, то можно использовать и Connects(2). Это будет уже шейп с обратной стороны.
Но сдается мне, что Вы пытаетесь не коннекторы использовать, а 2D шейпы между собой склеивать. Тогда все усложняется. Надо разбираться с типами Conecction points (inward, outward...). В этом случае любой шейп может быть и "активным" и "пассивным" - в зависимости от типа точки.
Если точка Outward, значит шейп похож на коннектор. Если Inward - значит к ней будут коннектиться.
Если у шейпа есть точки обоих типов, значит опрашивать придется обе коллекции - и Connects и FromConnects.


Go to Top of Page

vis

47 Posts

Posted - 01/12/2011 :  16:51:38
спустя час после своего поста разобрался...
Но все равно спасибо
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)