更改 Visio 形状名称以匹配用户输入的形状数据

时间:2021-07-07 15:20:50

标签: vba visio

当将形状拖放到页面时,我需要将 visio 形状的名称更改为用户输入的值。我创建了两个形状数据字段:名称和状态。当形状被删除时,名称字段会提示用户输入名称,这是我想转移到实际形状名称的值。这样做的原因是可以使用分配给“名称”字段的值以编程方式更改形状数据字段“状态”,如下面的代码所示:

Sub SetStatePassive()
Dim vPag As Visio.Page
Set vPag = Visio.ActivePage
    Dim shp As Visio.shape
    Set shp = Visio.ActivePage.Shapes("XV 013A")
    Dim vCell As Visio.cell
    Set vCell = shp.Cells("Prop.State")
    vCell.FormulaU = Chr(34) & "Passive" & Chr(34)
End Sub

我还没有找到更改实际形状名称以自动匹配“名称”形状数据字段的方法。

有没有办法使用形状表公式来做到这一点,或者在定义形状数据后让形状触发一些 VBA 代码。用代码改名字没问题,但是代码如何自动触发把形状名称设置到形状数据字段“名称”

或者是他们获取形状以提示用户在放置时直接更改形状名称的方式。

1 个答案:

答案 0 :(得分:0)

shp.Name = textString

不过要注意重名。