Événement InvisibleApp.ShapeAdded (Visio)
Cet événement se produit après l'ajout d'une ou de plusieurs formes à un document.
Syntaxe
expression. ShapeAdded (Shape)
Expression Variable qui représente un objet InvisibleApp .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
Forme | Requis | [IVSHAPE] | Forme ou groupe de formes ajouté au document. |
Remarques
Un objet Shape peut servir d’objet source pour l’événement ShapeAdded si la propriété Type de la forme est visTypeGroup (2) ou visTypePage (1).
Les événements SelectionAddedet ShapeAddedsont similaires : ils sont tous deux déclenchés après la création d'une ou de plusieurs formes. En revanche, leur comportement diffère lorsque plusieurs formes sont ajoutées en une seule opération. Prenons l'exemple d'une opération Paste produisant trois nouvelles formes. L'événement ShapeAdded se déclenche trois fois et agit sur chacun des trois objets. L'événement SelectionAdded se déclenche une seule fois et agit sur un objet Selection dans lequel les trois nouvelles formes sont sélectionnées.
Pour déterminer si un événement ShapeAdded a été déclenché par l’ajout d’une nouvelle forme ou d’un nouveau groupe de formes à la page, par un ensemble de formes existantes regroupées ou par une action de collage, vous pouvez utiliser la propriété Application.IsInScope . Si IsInScope renvoie la valeur True après la transmission de visCmdObjectGroup, l'événement ShapeAdded a été déclenché par une action de groupement. Si IsInScope renvoie True lors de la transmission de visCmdUFEditPaste ou visCmdEditPasteSpecial, l’événement ShapeAdded a été déclenché par une opération de collage. Si IsInScope renvoie la valeur False après la transmission de tous ces arguments, l'événement doit avoir été déclenché par de nouvelles formes ajoutées à la page.
Si vous utilisez Microsoft Visual Basic ou Visual Basic pour Applications (VBA), la syntaxe de cette rubrique décrit un moyen générique pour gérer efficacement les événements.
Si vous souhaitez créer vos propres objets Event , utilisez la méthode Add ou AddAdvise .
Pour créer un objet Event qui exécute un module complémentaire, utilisez la méthode Add applicable à la collection EventList.
Pour créer un objet Event qui reçoit des notifications, utilisez la méthode AddAdvise.
Pour rechercher le code de l’événement à créer, voir Codes d’événement.
Exemple
Cet exemple VBA indique comment compter les formes ajoutées à un dessin basées sur une forme de base appelée Carré. Collez le code dans le projet du document actif dans Visio.
Le gestionnaire d'événement DocumentSaved est exécuté lors de l'enregistrement du document actif. Le gestionnaire initialise une variable entière, intNumberOfSquares , qui est utilisée pour stocker le nombre.
Le gestionnaire d'événement ShapeAdded est exécuté chaque fois qu'une forme est ajoutée à la page de dessin, que cette forme provienne d'un gabarit, soit dessinée avec un outil de dessin ou collée à partir du Presse-papiers. Le gestionnaire vérifie la propriété Master de la nouvelle forme et, si la forme est basée sur la forme carrée , incrémente 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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.