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

时间:2016-09-08 21:15:21

标签: vba visio

我最近在我的代码中发现了一个新的错误,它似乎即将到来,因为我没有考虑到鬼形状(ID 231)

鬼影形状没有主名称或显示的文字(根据形状报告)

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

如果形状ID是这样,那么将它向前移动并将其着色为红色会有所帮助(或纯粹选择它会有所帮助)

谢谢!

1 个答案:

答案 0 :(得分:3)

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方法,因此您也可以在此处使用它。