如何在模板中隐藏visio形状组

时间:2012-12-13 10:02:02

标签: shape visio stencils shapesheet

我有一个复杂的模板,有很多小的形状(第6到43页),分组(第44页)。其中也有分组。

我想使用shapesheet公式隐藏此组以使用用户属性。

在一个简单的形状我会设置: Geometry1.NoShow = sheet.44!user.isHidden Miscellaneous.HideText = sheet.44!user.isHidden

但是如何让它在所有子形状中继承?用vba?

使用答案进行编辑:

感谢Jon的肯定,除了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

见到你们!

1 个答案:

答案 0 :(得分:1)

您的VBA代码必须遍历所有子形状并在组获得新形状时设置该公式。公式的格式就像你的例子一样,所以做起来并不难:

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

或者类似的东西,它在ParShp.Shapes中的每个SubShp的循环中......