Vba 选择隐藏在Visio中的(重影)形状

Vba 选择隐藏在Visio中的(重影)形状,vba,visio,Vba,Visio,我最近发现我的代码中出现了一个新的错误,它似乎正在出现,因为我没有考虑鬼形状(ID231) 重影形状没有主控名称或显示的文本(根据形状报告) 在这种情况下,它隐藏在我的工作表/页面的某个地方。如何通过VBA通过使用特定ID调用来选择它 如果形状ID是这个,则将其向前移动,并将其涂成红色会有所帮助(或者完全选择它会有所帮助) 谢谢 Sub SetHiddenShape() Dim vPag As Visio.Page Dim vShp As Visio.Shape 'Assumes

我最近发现我的代码中出现了一个新的错误,它似乎正在出现,因为我没有考虑鬼形状(ID231)

重影形状没有主控名称或显示的文本(根据形状报告)

在这种情况下,它隐藏在我的工作表/页面的某个地方。如何通过VBA通过使用特定ID调用来选择它

如果形状ID是这个,则将其向前移动,并将其涂成红色会有所帮助(或者完全选择它会有所帮助)

谢谢

Sub SetHiddenShape()
  Dim vPag As Visio.Page
  Dim vShp As Visio.Shape

  'Assumes target page is activepage (which might not be the case)
  Set vPag = ActivePage
  Set vShp = vPag.Shapes.ItemFromID(231)
  vShp.BringToFront
  vShp.CellsU("FillForegnd").FormulaU = "=RGB(200, 50, 50)"

  'and to select the the shape:
  ActiveWindow.Select vShp, VisSelectArgs.visDeselectAll + VisSelectArgs.visSelect
End Sub

请注意,
BringToFront
方法也可以在
Selection
对象上使用,因此您也可以在那里使用它。

非常感谢!那很有帮助!