Partager via


Propriété Shape.SpatialNeighbors (Visio)

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.