【问题标题】:Adjust Visio shape properties after placement放置后调整 Visio 形状属性
【发布时间】:2015-08-09 22:25:09
【问题描述】:

我只是需要一些方向,如果我知道去哪里看,我可以找到答案。我以编程方式将形状放在工作表上作为 db 查询的输出。这些形状有许多属性(prop.)。我想删除形状然后将这些属性设置为某些东西。我正在做的事情是给我错误。我怀疑我缺少一个步骤。这是我如何删除形状

Dim vsoShape As Visio.Shape
Dim vsoMaster As Visio.Master

For lngRow = LBound(lngRowIDs) + 1 To UBound(lngRowIDs) + 1
    varRowData = vsoDataRecordset.GetRowData(lngRow)

    Set vsoMaster = Visio.Documents(varRowData(14) + ".vss").Masters(varRowData(8))

    dblX = dblX + 0.5
    dblY = dblY + 0.5

    Set vsoShape = ActivePage.Drop(vsoMaster, dblX, dblY)

    'vsoShape.Cells("Prop.title").Formula = Chr(34) & varRowData(0) & Chr(34)
    'vsoShape.Cells("Prop.Entitlements").Formula = Chr(34) & varRowData(1) & Chr(34)
    'vsoShape.Cells("Prop.environ").Formula = Chr(34) & varRowData(2) & Chr(34)
    'vsoShape.Cells("Prop.netZone").Formula = Chr(34) & varRowData(3) & Chr(34)
    'vsoShape.Cells("Prop.Mem").Formula = Chr(34) & varRowData(4) & Chr(34)
    'vsoShape.Cells("Prop.vcpu_cores").Formula = Chr(34) & varRowData(5) & Chr(34)
    'vsoShape.Cells("Prop.sockets").Formula = Chr(34) & varRowData(6) & Chr(34)
    'vsoShape.Cells("Prop.hosts").Formula = Chr(34) & varRowData(7) & Chr(34)
    'vsoShape.Cells("Prop.shape").Formula = Chr(34) & varRowData(8) & Chr(34)
    'vsoShape.Cells("Prop.shapeKey").Formula = Chr(34) & varRowData(15) & Chr(34)            
Next lngRow

我认为我需要做的是在删除它之后获取一些形状 ID,然后使用该形状 ID 来设置值。错误似乎是它找不到属性名称。所有 prop.X 名称都是正确的。我得到的错误是

运行时错误“-2032466967 (86db03e9)”:文件意外结束

我是使用 Visio VBA 的新手。我更习惯 Excel。

迈克尔。

【问题讨论】:

    标签: vba visio


    【解决方案1】:

    这不是一个答案,而是一个解决方案。为了成为一个答案,我需要知道为什么在有多个组时访问具有形状的组的属性时遇到问题。解决方案是将所有自定义形状重新设计为只有一组。一旦完成,上面列出的用于设置属性值的代码就可以正常工作了。

    我怀疑最好的解决方案是必须弄清楚如何直接引用嵌套组属性。

    谢谢。

    迈克尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      相关资源
      最近更新 更多