Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Renvoie un objet Selection qui représente les formes répondant à certains critères en relation avec une forme donnée. En lecture seule.
Syntaxe
expression. SpatialNeighbors (Relation, Tolerance, Flags, ResultRoot)
expression Une variable qui représente uneForme d’objet.
Paramètres
| Nom | Requis/Facultatif | Type de données | Description |
|---|---|---|---|
| Relation | Requis | Integer | Entier décrivant le type de relation à adopter. |
| Tolerance | Obligatoire | Double | Distance, exprimée dans l'unité de dessin interne, tenant compte du système de coordonnées défini par la forme parente. |
| Flags | Requis | Integer | Indicateurs influençant le type d'entrées renvoyées dans les résultats. |
| ResultRoot | Facultatif | Variant | Objet Shape qui représente une page ou un groupe. |
Valeur renvoyée
Sélection
Remarques
Pour obtenir les valeurs de l'argument Relation, reportez-vous à la rubrique consacrée à la propriété SpatialRelation.
L'argument Indicateurs peut être l'une des combinaisons de valeurs des constantes définies dans le tableau suivant. Ces constantes sont également définies en tant que membres de VisSpatialRelationFlags dans la bibliothèque de types de Visio.
| Constante | Valeur | Description |
|---|---|---|
| visSpatialIncludeContainerShapes | &H80 | Inclut les conteneurs. Par défaut, les conteneurs ne sont pas inclus. |
| visSpatialIncludeDataGraphics | &H40 | Inclut les formes de légende des graphiques de données et leurs sous-formes. Par défaut, les formes de légende des graphiques de données et leurs sous-formes ne sont pas incluses. Si la forme parente est elle-même une légende de graphique de données, les recherches sont réalisées entre la géométrie de la forme parente et les formes qui ne sont pas des formes de légende, excepté si cet indicateur est défini. |
| visSpatialIncludeGuides | &H2 | Tient compte de la section Geometry d'un repère. Par défaut, les repères n’influencent pas le résultat. |
| visSpatialFrontToBack | &H4 | Trie les éléments d'avant en arrière. |
| visSpatialBackToFront | &H8 | Trie les éléments d'arrière en avant. |
| visSpatialIncludeHidden | &H10 | Tient compte des sections Geometry masquées. Par défaut, les sections Geometry masquées n’influencent pas le résultat. |
| visSpatialIgnoreVisible | &H20 | Ne tient pas compte des sections Geometry visibles. Par défaut, les sections Geometry visibles ont une incidence sur le résultat. |
Utilisez la cellule NoShow pour déterminer si une section Geometry est visible ou masquée. Les sections Geometry masquées ont une valeur TRUE et celles qui sont visibles ont une valeur FALSE dans la cellule NoShow.
Si l'argument Relation n'est pas indiqué, la propriété SpatialNeighbors utilise toutes les relations possibles comme critères.
À partir de Visio 2002, si Indicateurs contient VisSpatialFrontToBack, les éléments de l'objet Selection renvoyés par la propriété SpatialNeighbors sont triés d'avant en arrière. Si visSpatialBackToFront est défini, les éléments renvoyés sont triés du dernier au premier. Si cet indicateur n'est pas défini ou si vous exécutez une version antérieure de Visio, l'ordre est imprévisible. Vous pouvez déterminer l’ordre à l’aide de la propriété Index des formes identifiées dans l’objet Selection .
Si vous n'indiquez pas d'argument RacineRésultat, cette propriété renvoie un objet Selection qui représente les formes répondant à certains critères en relation avec une forme donnée. Si vous indiquez un argument RacineRésultat, cette propriété renvoie un objet Selection qui représente toutes les formes de l'objet Shape défini par l'argument RacineRésultat répondant à certains critères en relation avec la forme spécifiée. Par exemple, indiquez à l'argument RacineRésultat de rechercher toutes les formes d'un groupe proches d'une forme donnée.
Si la forme RacineRésultat est indiquée mais qu'elle ne se trouve pas sur la même page ou dans la même forme de base que l'objet Shape auquel vous la comparez, la propriété SpatialNeighbors génère une exception et renvoie Nothing.
La propriété SpatialNeighbors ne tient pas compte de la largeur de trait, des ombres, des extrémités de trait, des points de contrôle ou des points de connexion des formes lors des comparaisons.
Exemple
Cet exemple Microsoft Visual Basic pour Applications (VBA) indique comment utiliser la propriété SpatialNeighbors dans un gestionnaire d'événement pour l'événement ShapeAdded pour déterminer si une forme est contenue dans une autre.
Avant d’ajouter le code suivant à votre projet VBA, ajoutez au moins une forme à votre dessin. Ajoutez ensuite une autre forme à votre dessin (en la faisant glisser à partir d'un gabarit ou en la dessinant) en la positionnant de sorte qu'elle soit totalement contenue dans une forme existante.
Public Sub Document_ShapeAdded(ByVal Shape As IVShape)
Dim vsoShapeOnPage As Visio.Shape
Dim intTolerance As Integer
Dim vsoReturnedSelection As Visio.Selection
Dim strSpatialRelation As String
Dim intSpatialRelation As VisSpatialRelationCodes
On Error GoTo errHandler
'Initialize string
strSpatialRelation = ""
'Set tolerance argument
intTolerance = 0.25
'Set Spatial Relation argument
intSpatialRelation = visSpatialContainedIn
'Get the set of spatially related shapes
'that meet the criteria set by the arguments.
Set vsoReturnedSelection = Shape.SpatialNeighbors _
(intSpatialRelation, intTolerance, 0)
'Evaluate the results.
If vsoReturnedSelection.Count = 0 Then
'No shapes met the criteria set by
'the arguments of the method.
strSpatialRelation = Shape.Name & " is not contained."
Else
'Build the positive result string.
For Each vsoShapeOnPage In vsoReturnedSelection
strSpatialRelation = strSpatialRelation & _
Shape.Name & " is contained by " & _
vsoShapeOnPage.Name & Chr$(10)
Next
End If
'Display the results on the shape added.
Shape.Text = strSpatialRelation
errHandler:
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.