Как скрыть группу форм Visio в трафарете

У меня сложный трафарет с множеством мелких фигур (л.6 по 43), сгруппированных в группу (л.44). В нем также есть подгруппы.

Я хочу скрыть эту группу, используя формулы формы, чтобы использовать свойство пользователя.

На простой форме я бы установил: Geometry1.NoShow=sheet.44!user.isHidden Miscellaneous.HideText=sheet.44!user.isHidden

Но как сделать так, чтобы он наследовался во всех подформах? с вба?

Редактировать с ответом:

Спасибо, Джон, за подтверждение того, что нет другого пути, кроме VBA. Вот мой код VBA для всех вас, у кого такая же проблема.

Call makeithidden("Sheet.164!Geometry1.NoShow", myshape)


Sub makeithidden(formula As String, ByVal myshape As Shape)
    For Each subShape In myshape.Shapes
        subShape.Cells("geometry1.noShow").FormulaForceU = formula
        subShape.Cells("HideText").FormulaForceU = formula
        Call makeithidden(formula, subShape)
    Next subShape
End Sub

Увидимся !


person Nicolas Thery    schedule 13.12.2012    source источник


Ответы (1)


Ваш код VBA должен будет перебирать все подформы и устанавливать эту формулу каждый раз, когда группа получает новую форму. Формат формулы будет таким же, как в вашем примере, поэтому это будет несложно сделать:

SubShp.CellsSRC(visSectionFirstComponent,0,2).FormulaU = "Sheet." & Cstr(ParShp.ID) & "!Geometry1.NoShow"

или что-то в этом роде, где это в цикле для каждого SubShp в ParShp.Shapes...

person Jon Fournier    schedule 14.12.2012