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

evgenia_e

Germany
22 Posts

Posted - 03/21/2004 :  11:20:37
Помогите! У меня на листе изображено 2 прямоугольника одинакового размера, стоящих как бы друг на друге (как класс из UML static structure)и объединенных в группу. Надо из VBA добавить вниз (а также к группе)еще один такой же прямоугольник.

Спасибо

Tumanov

Russia
1198 Posts

Posted - 03/21/2004 :  12:36:00
Приблизительно вот так:
Sub ttt()
Dim shpObj1 As Visio.Shape
Dim shpObj2 As Visio.Shape
Dim shpObj3 As Visio.Shape
Set shpObj1 = ActivePage.Shapes("Sheet.3")
Set shpObj2 = shpObj1.Shapes("Sheet.2")
Это забрались внутрь группы с именем Sheet.3 и взяли второй шейп с именем Sheet.2
shpObj2.Copy
shpObj1.Paste visCopyPasteNoTranslate
Скопировали его на свое же место
Set shpObj3 = shpObj1.Shapes.Item(shpObj1.Shapes.Count)
Вычислили ссылку на него
А теперь привяжем поточнее - по горизонтали к прототипу, а по вертикали сместим вниз на высоту прототипа
shpObj3.Cells("PinX").Formula = shpObj2.Cells("PinX").Formula
shpObj3.Cells("PinY").Formula = shpObj2.Cells("PinY").Result("in") - shpObj2.Cells("Height").Result("in")
Это при условии, что единицы измерения - дюймы
End Sub
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)