Я пытаюсь создать макрос Visio, который будет алфавитизировать мастера в первом закрепленном трафарете в документе.Ниже мой код.Однако Set vsoDoc = Visio.Documents.ItemFromID (0), по-видимому, ссылается не на закрепленный трафарет, а на трафарет документа.Как получить пристыкованный трафарет?Любая помощь очень ценится!
Dim i As Integer
Dim vsoDoc As Visio.Document
Dim vsoDocNew As Visio.Document
Dim dictMasters As New Scripting.Dictionary
Set vsoDoc = Visio.Documents.ItemFromID(0) 'Existing Stencil
Set vsoDocNew = Visio.Documents.AddEx("New Stencil.vss", , visAddStencil) 'New Sorted Stencil
'Get the names of the existing masters and sort them
For i = 1 To vsoDoc.Masters.Count
Call dictMasters.Add(vsoDoc.Masters(i).Name, vsoDoc.Masters(i))
Next
list = dictMasters.Keys()
Dim First As Integer, Last As Long
Dim x As Long, j As Long
Dim Temp As String
First = LBound(list)
Last = UBound(list)
For x = First To Last - 1
For j = x + 1 To Last
If list(x) > list(j) Then
Temp = list(j)
list(j) = list(x)
list(x) = Temp
End If
Next j
Next x
'Drop the existing masters into the new stencil based on the sorting
For i = 1 To dictMasters.Count
Call vsoDocNew.Masters.Drop(dictMasters(list(i - 1)), 0, 0)
Next
Я надеюсь изготовить новый трафарет с теми же мастерами, что и пристыкованный трафарет, но в алфавитном порядке.Однако созданный новый трафарет состоит из алфавита трафарета документа.Visio.Documents.ItemFromID (0) возвращает трафарет документа, но я хочу получить первый закрепленный трафарет.Как получить пристыкованный трафарет?