查找形状 属性 的值

Find value of shape property

我在 Visio 中编写了一个宏来检索形状 属性 字段索引的值,但是行值在不同形状之间不断变化(有时为 5,有时为 8)。但是,我找不到一种方法来将 CellsSRC 中的值 5 替换为关注行名称而不是行值的解决方案。关于如何找到 属性“索引”的值的任何建议?

这是我的宏:

Sub Select_Shape()

Dim vsoPage As Visio.Page
Dim vsoShape As Visio.Shape
Dim vsoLayers As Visio.Layers

Set vsoPage = ActivePage
Set vsoLayers = vsoPage.Layers
ShapeID = ActiveWindow.Selection.PrimaryItem.ID 'find shape ID

Set vsoShape2 = Application.ActiveWindow.Page.Shapes.ItemFromID(ShapeID)

index_num = vsoShape2.CellsSRC(visSectionProp, 5, visCustPropsValue).FormulaU 'retrieve index value  <-- Here is the issue 

End Sub

这是我要查找的值:

非常感谢您的任何建议!

我最终通过直接调用名为“Prop._VisDM_Index”的单元格的值解决了这个问题:

Sub Select_Shape()

Dim vsoPage As Visio.Page
Dim vsoShape As Visio.Shape
Dim vsoLayers As Visio.Layers
Dim cel As Visio.Cell

Set vsoPage = ActivePage
Set vsoLayers = vsoPage.Layers

ShapeID = ActiveWindow.Selection.PrimaryItem.ID
Set vsoShape2 = Application.ActiveWindow.Page.Shapes.ItemFromID(ShapeID)

Call Deselect_layers

shape_value = vsoShape2.Cells("Prop._VisDM_Index").FormulaU
vsoLayers.Item(shape_value).CellsC(visLayerVisible).FormulaU = "1"

End Sub