Как перебрать некоторые фигуры в Visio? - PullRequest
0 голосов
/ 19 сентября 2019

Я бы хотел перебрать некоторые фигуры в 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

1 Ответ

0 голосов
/ 20 сентября 2019

Я сделал это так:

объявление и установка части:

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
...