Я бы хотел перебрать некоторые фигуры в Visio, у меня есть решение, которое работает, но немного низко, потому что есть много фигур (может быть, тысяча, и мне интересно только перебирать двадцать или тридцатьиз них):
Dim shp As Visio.Shape
Dim pagShape As Visio.Shape
Set pagShape = Visio.ActivePage.PageSheet
For Each shp In Visio.ActivePage.Shapes
If InStr(shp.Data3, "_tag") Then
If StrComp(Replace(shp.Data3, "_tag", ""), name) = 0 Then
shp.text = name
Else:
shp.text = ""
End If
End If
Next shp
Можно ли добавить некоторые фигуры в виде списка вместо выбора всех существующих фигур?что-то вроде этого:
For Each shp In List
большое спасибо заранее :)
edit: я сделал это таким образом:
объявление и установка части:
Public Collection_shp As Collection
Set Collection_shp = New Collection
Когда я создаю форму метки, я добавляю ее в коллекцию:
Collection_shp.Add Item:=vso_sg
И часть с петлей:
Dim shp As Visio.Shape
For Each shp In Collection_shp
If InStr(shp.Data3, "_tag") > 0 Then
If StrComp(Replace(shp.Data3, "_tag", ""), name) = 0 Then
shp.text = name
Else
shp.text = ""
End If
End If
Next shp