Compartir a través de


Evento Master.ShapeAdded (Visio)

Se produce después de agregarse una o varias formas a un documento.

Sintaxis

expresión. ShapeAdded (Shape)

Expresión Variable que representa un objeto Master .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Shape Obligatorio [IVSHAPE] Forma o grupo de formas que se han agregado al documento.

Comentarios

Un objeto Shape puede servir como objeto de origen para el evento ShapeAdded si la propiedad Type de la forma es visTypeGroup (2) o visTypePage (1).

Los eventos SelectionAdded y ShapeAdded son similares, ya que ambos se desencadenan después de crearse formas. Difieren en cómo se comportan cuando se agregan varias formas con una sola operación. Supongamos que una operación de Paste crea tres nuevas formas. El evento ShapeAdded se desencadena tres veces y actúa en cada uno de los tres objetos. El evento SelectionAdded se desencadena una sola vez y actúa en un objeto Selection en el que están seleccionadas las tres formas nuevas.

Para determinar si un evento ShapeAdded se desencadenó mediante una nueva forma o un grupo de formas que se van a agregar a la página, por un conjunto de formas existentes agrupadas o por una acción de pegar, puede usar la propiedad Application.IsInScope . Si IsInScope devuelve True cuando se pasa visCmdObjectGroup, el evento ShapeAdded lo desencadena una acción de agrupamiento. Si IsInScope devuelve True cuando se pasa visCmdUFEditPaste o visCmdEditPasteSpecial, el evento ShapeAdded se desencadenó mediante una operación de pegado. Si IsInScope devuelve False cuando se pasan todos estos argumentos, el evento lo desencadenan las nuevas formas que se agregan a la página.

Si utiliza Microsoft Visual Basic o Visual Basic para Aplicaciones (VBA), la sintaxis de este tema describe una forma común y eficaz de controlar los eventos.

Si desea crear sus propios objetos Event , use el método Add o AddAdvise .

Para crear un objeto Event que ejecute un complemento, use el método Add, ya que se aplica a la colección EventList.

Para crear un objeto Event que reciba notificaciones, use el método AddAdvise.

Para encontrar un código de evento para el evento que desea crear, vea el tema sobre los códigos de evento.

Ejemplo:

En este ejemplo de VBA se muestra cómo contar las formas agregadas a un dibujo y basadas en un patrón denominado Square. Pegue el código en el proyecto del documento activo en Visio.

El controlador de eventos DocumentSaved se ejecuta cuando se guarda el documento activo. El controlador inicializa una variable de entero, intNumberOfSquares , que se usa para almacenar el recuento.

El controlador de eventos ShapeAdded se ejecuta cada vez que se agrega una forma a la página de dibujo, independientemente de que la forma se arrastre desde una galería de símbolos, se dibuje con una herramienta de dibujo o se pegue desde el Portapapeles. El controlador comprueba la propiedad Master de la nueva forma y, si la forma se basa en el patrón Square , incrementa intNumberOfSquares.

 
Dim intNumberOfSquares As Integer 
 
Private Sub Document_DocumentSaved(ByVal vsoDocument As Visio.IVDocument) 
 
 'Initialize number of squares added. 
 intNumberOfSquares = 0 
 
End Sub 
 
Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 
 Dim vsoMaster As Visio.Master 
 
 'Get the Master property of the shape. 
 Set vsoMaster = vsoShape.Master 
 
 'Check whether the shape has a master. If not, 
 'the shape was created locally. 
 If Not (vsoMaster Is Nothing) Then 
 
 'Check whether the master is "Square". 
 If vsoMaster.Name = "Square" Then 
 
 'Increment the count for the number of squares added. 
 intNumberOfSquares = intNumberOfSquares + 1 
 
 End If 
 
 End If 
 
 MsgBox "Number of squares: " & intNumberOfSquares, vbInformation, _ 
 "Document Created Example" 
 
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.