Método Page.ShapeIDsToUniqueIDs (Visio)
Retorna uma matriz de IDs exclusivas de formas na página, conforme especificado por suas IDs de forma.
Sintaxe
expression. ShapeIDsToUniqueIDs
( _ShapeIDs()_
, _UniqueIDArgs_
, _GUIDs()_
)
Expressão Uma expressão que retorna um objeto Page .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
ShapeIDs() | Obrigatório | Long | Uma matriz do tipo IDs long de forma correspondentes a um conjunto de formas na página de desenho ativa. |
UniqueIDArgs | Obrigatório | VisUniqueIDArgs | Obtém, exclui ou cria a identificação exclusiva de um objeto Shape. Consulte comentários para os valores possíveis. |
GUIDs() | Obrigatório | String | Parâmetro externo. Uma matriz vazia que o método preenche com IDs exclusivas do tipo String correspondentes às formas especificadas em ShapeIDs() |
Valor de retorno
Nada
Comentários
O Microsoft Visio identifica formas por meio de duas IDs diferentes: IDs de forma e IDs exclusivas. As IDs de Forma são numéricas e identificam as formas de maneira exclusiva no escopo de uma página de desenho individual. Entretanto, elas não são exclusivas em um escopo mais amplo.
As IDs exclusivas são GUIDs (identificadores globalmente exclusivos). Eles são exclusivos no escopo do aplicativo.
Para converter entre IDs de forma e IDs exclusivas, você pode usar dois métodos do objeto Page , ShapeIDsToUniqueIDs e UniqueIDsToShapeIDs.
Por padrão, uma forma não possui identificação exclusiva. Uma forma adquire uma ID exclusiva somente se você definir sua propriedade Shape.UniqueID . Se um objeto Shape tiver uma identificação exclusiva, nenhuma outra forma em qualquer outro documento terá a mesma identificação.
O parâmetro UniqueIDArgs define e controla o comportamento da propriedade UniqueID para todas as formas em ShapeIDs(). UniqueIDArgs deve ter um dos seguintes valores declarados na biblioteca de tipos do Visio em VisUniqueIDArgs.
Constant | Valor | Descrição |
---|---|---|
visGetGUID | 0 | Somente retornará a cadeia de caracteres de identificação exclusiva se a forma já tiver uma identificação exclusiva. Caso contrário, retornará uma cadeia de caracteres de comprimento zero (""). |
visGetOrMakeGUID | 1 | Retorna a cadeia de caracteres de identificação exclusiva da forma. Se a forma ainda não tiver uma identificação exclusiva, ela a atribuirá a ela e retornará a nova identificação. |
visDeleteGUID | 2 | Exclui a identificação exclusiva de uma forma e retorna uma cadeia de caracteres de comprimento zero (""). |
visGetOrMakeGUIDWithUndo | 3 | Retorna a cadeia de caracteres de identificação exclusiva da forma. Se a forma ainda não tiver uma ID exclusiva, atribua uma à forma e retorna a nova ID. Definitivo. |
visDeleteGUIDWithUndo | 4 | Limpa a ID exclusiva de uma forma e retorna uma cadeia de caracteres de comprimento zero (""). Definitivo. |
Exemplo
A macro do Microsoft Visual Basic for Applications (VBA) a seguir mostra como usar o método ShapeIDsToUniqueIDs para determinar as IDs exclusivas das formas na página passadas para o método. Ela itera em todas as formas na página de desenho ativa, usando a propriedade Shape.UniqueID para obter as identificações das formas e, em seguida, passa uma matriz dessas identificações para o método ShapeIDsToUniqueIDs como o parâmetro ShapeIDs() a fim de obter as identificações exclusivas das formas. Para o parâmetro UniqueIDArgs, ele passa o visGetOrMakeGUID de valor, dizendo ao Visio para criar uma ID exclusiva para qualquer forma que ainda não tenha uma. Ela imprime as identificações exclusivas e as identificações de forma na janela Immediate.
Antes de executar essa macro, abra um desenho do Visio e inclua várias formas na página de desenho ativa.
Public Sub ShapeIDsToUniqueIDs_Example()
Dim vsoShape As Visio.Shape
Dim intArrayCounter As Integer
intShapeCount = ActivePage.Shapes.Count
ReDim alngShapeIDs(intShapeCount - 1) As Long
ReDim astrUniqueIDs(intShapeCount - 1) As String
intArrayCounter = 0
For Each vsoShape In ActivePage.Shapes
alngShapeIDs(intArrayCounter) = vsoShape.ID
Debug.Print alngShapeIDs(intArrayCounter)
intArrayCounter = intArrayCounter + 1
Next
ActivePage.ShapeIDsToUniqueIDs alngShapeIDs, visGetOrMakeGUID, astrUniqueIDs
intArrayCounter = 0
For intArrayCounter = LBound(astrUniqueIDs) To UBound(astrUniqueIDs)
Debug.Print astrUniqueIDs(intArrayCounter)
Next
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.