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

moon4ik

Ukraine
6 Posts

Posted - 08/20/2008 :  09:57:38  Visit moon4ik's Homepage

Доброго времени суток.
Возникла проблема. Есть план помещения, на котором есть области. Для удобства и наглядности решил сделать чтобы каждая область взависимости от статуса меняла цвет. Это без проблем. Но вот возникла проблема. Руками править каждую область влом так как их очень много. Как можно сделать так чтобы автоматически (при помощи макроса) перебрать все области данного типа? или хотябы написать макрос чтобы менял свойства выделенного обьекта.


    Application.ActiveWindow.Page.Shapes.ItemFromID(715).OpenSheetWindow
    Application.ActiveWindow.Shape.CellsSRC(visSectionObject, visRowFill, visFillForegndTrans).FormulaU = "50%"
    Application.ActiveWindow.Shape.CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "IF(STRSAME(Prop.State,""в эксплуатации""),RGB(0,255,0),IF(STRSAME(Prop.State,""резерв""),RGB(255,255,0),IF(STRSAME(Prop.State,""ремонт""),RGB(255,0,0),RGB(0,0,0))))"
    Application.ActiveWindow.Close


Тут я выбрал область по ItemFromID(715). Но у каждой области разные ID.
Есть что-то типа имени "Область.409" и значения после точки разные у каждой области.
Все области хранятся в отдельном слое. Может можно как то перебрать все обьекты слоя и изменить параметры?



--
Alex Moon

Tumanov

Russia
1198 Posts

Posted - 08/20/2008 :  17:08:39
Вот такой макрос выберет из всех шейпов на активной странице те, которые лежат на слое ob и впишет в них нужные формулы.
Sub ttt()
 For Each Shape In ActivePage.Shapes
  If (Shape.LayerCount > 0) Then
   If StrComp(Shape.Layer(1).Name, "ob") = 0 Then
    Shape.CellsSRC(visSectionObject, visRowFill, visFillForegndTrans).FormulaU = "50%"
    Shape.CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = "IF(STRSAME(Prop.State,""в эксплуатации""),RGB(0,255,0),IF(STRSAME(Prop.State,""резерв""),RGB(255,255,0),IF(STRSAME(Prop.State,""ремонт""),RGB(255,0,0),RGB(0,0,0))))"
   End If
  End If
 Next
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)