Método Page.ShapeIDsToUniqueIDs (Visio)
Devuelve una matriz de identificadores únicos de formas en la página, según lo especificado por sus identificadores de forma.
Sintaxis
expresión. ShapeIDsToUniqueIDs
( _ShapeIDs()_
, _UniqueIDArgs_
, _GUIDs()_
)
Expresión Expresión que devuelve un objeto Page .
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
ShapeIDs() | Necesario | Long | Matriz de tipo Long de identificadores de forma correspondientes a un conjunto de formas en la página de dibujo activa. |
UniqueIDArgs | Obligatorio | VisUniqueIDArgs | Obtiene, elimina o crea el identificador único de un objeto Shape. Vea la sección Comentarios para los valores posibles. |
GUID() | Obligatorio | String | Parámetro de salida. Matriz vacía que el método rellena con identificadores únicos de tipo String correspondientes a las formas especificadas en ShapeIDs() |
Valor devuelto
Nothing
Comentarios
Microsoft Visio identifica las formas mediante dos identificadores diferentes: identificadores de formas e identificadores únicos. Los identificadores de formas son numéricos e identifican de forma única las formas dentro del ámbito de una página de dibujo individual. No obstante, no son únicos dentro de un ámbito más amplio.
Los identificadores únicos son identificadores únicos globales (GUID). Son únicos dentro del ámbito de la aplicación.
Para convertir entre identificadores de forma e identificadores únicos, puede usar dos métodos del objeto Page , ShapeIDsToUniqueIDs y UniqueIDsToShapeIDs.
De forma predeterminada, una forma no tiene un identificador único. Una forma adquiere un identificador único solo si establece su propiedad Shape.UniqueID . Si un objeto Shape tiene un identificador único, ninguna otra forma de cualquier otro documento tendrá el mismo identificador.
El parámetro UniqueIDArgs establece y controla el comportamiento de la propiedad UniqueID para todas las formas de ShapeIDs(). UniqueIDArgs debe tener uno de los valores siguientes declarados en la biblioteca de tipos de Visio en VisUniqueIDArgs.
Constante | Valor | Descripción |
---|---|---|
visGetGUID | 0 | Devuelve la cadena de identificador único sólo si la forma ya tiene un identificador único. En caso contrario, devuelve una cadena de longitud cero (""). |
visGetOrMakeGUID | 1 | Se devuelve la cadena de identificador único de la forma. Si la forma no tiene todavía un identificador único, se asigna uno a la forma y se devuelve el nuevo identificador. |
visDeleteGUID | 2 | Elimina el identificador único de una forma y devuelve una cadena de longitud cero (""). |
visGetOrMakeGUIDWithUndo | 3 | Se devuelve la cadena de identificador único de la forma. Si la forma aún no tiene un identificador único, asigna uno a la forma y devuelve el nuevo identificador. No se puede deshacer. |
visDeleteGUIDWithUndo | 4 | Borra el identificador único de una forma y devuelve una cadena de longitud cero (""). No se puede deshacer. |
Ejemplo:
La siguiente macro de Microsoft Visual Basic para Aplicaciones (VBA) muestra cómo usar el método ShapeIDsToUniqueIDs para determinar los identificadores únicos de las formas de la página que se pasan al método . Recorre en iteración todas las formas de la página de dibujo activa, utilizando la propiedad Shape.UniqueID para obtener los identificadores de forma de las formas y, a continuación, pasa una matriz de esos identificadores al método ShapeIDsToUniqueIDs como parámetro ShapeIDs() para obtener los identificadores únicos de las formas. Para el parámetro UniqueIDArgs, pasa el valor visGetOrMakeGUID, indicando a Visio que cree un identificador único para cualquier forma que aún no tenga una. Se imprimen los identificadores únicos y los identificadores de formas en la ventana Immediate (Inmediato).
Ante de ejecutar la macro, abra un dibujo de Visio y coloque varias formas en la página de dibujo activa.
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.