Author |
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 руб, не зная освою ли, смогу ли понять, не хочется. Может кто подкинет ссылочку?? Кто-то кстати хотел отсканить и выложить в широкие массы, но так, видно, руки и не дошли.
|
|
|
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, так как группа - это шейп. Иначе будет страница.
|
|
|
vis
47 Posts |
Posted - 07/17/2009 : 05:56:32
|
Спасибо огромное!!! Все, конечно же, получилось!!! |
|
|
|
Topic |
|
|
|