All Forums
 Категория Visio
 Форум Вопросы и ответы
 принадлежность к группе
Author Previous Topic Topic Next Topic  

vis

47 Posts

Posted - 07/16/2009 :  05:17:25
добрый день, спецы!
у меня проблема, наверное, детская, но решить ее пока не смог
ПОМОГИТЕ, ПОЖАЛУЙСТА!
Итак, имеются 9 прямоугольников
1, 2, 3 сгруппированы, и группа имеет текст "А"
4, 5, 6 сгруппированы, и группа имеет текст "Б"
7, 8, 9 несгруппированы
Вопрос, как узнать принадлежит ли прямоугольник группе? Если да, то необходимо вытащить текст этой группы.

vis

47 Posts

Posted - 07/16/2009 :  05:25:31
и ЕЩЕ вопрос.
прочитал ваши топики по поводу книжек для желающих освоить vba visio.
по большому счету, кроме Visio 2003 Developer's survival pack (Graham Wideman) и DVS 2000, никаких советов не услышал.
Но где их найти???? А покупать книжку за 3000 руб, не зная освою ли, смогу ли понять, не хочется.
Может кто подкинет ссылочку??
Кто-то кстати хотел отсканить и выложить в широкие массы, но так, видно, руки и не дошли.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/16/2009 :  16:30:50
Вот если мы напишем такой макрос и нарисуем прямоугольники, как сказано выше, то при селектировании шейпа и выполнении макроса он будет выводить либо текст группы, либо NameID шейпа.
Dim sel As Visio.Selection
Dim sh As Visio.Shape
Sub ttt()
    Set sel = ActiveWindow.Selection
    sel.IterationMode = visSelModeSkipSuper
    Set sh = sel(1)
    If sh.Parent.ObjectType = visObjTypeShape Then
        MsgBox sh.Parent.Text
    Else
        MsgBox sh.NameID
    End If
End Sub

Для того, чтобы правильно определялся селектированный шейп, пришлось управлять IterationMode. Это к делу не относится, сделано просто для удобства.
А собственно принадлежность к группу определяется через .Parent.ObjectType. Если это группа, то свойство будет равно visObjTypeShape, так как группа - это шейп. Иначе будет страница.
Go to Top of Page

vis

47 Posts

Posted - 07/17/2009 :  05:56:32
Спасибо огромное!!!
Все, конечно же, получилось!!!
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)