Partager via


Propriété Shape.SpatialRelation (Visio)

Renvoie un entier qui représente la relation spatiale d'une forme par rapport à une autre forme. Les deux formes doivent se trouver sur la même page ou dans la même forme de base. En lecture seule.

Syntaxe

expression. SpatialRelation (OtherShape, Tolerance, Flags)

expression Une variable qui représente uneForme d’objet.

Paramètres

Nom Requis/Facultatif Type de données Description
Autre forme Obligatoire [IVSHAPE] Autre objet Shape impliqué dans la comparaison.
Tolerance Obligatoire Double Distance exprimée dans l'unité de dessin interne par rapport au système de coordonnées défini par le parent de l'objet Shape.
Flags Obligatoire Integer Indicateurs ayant une incidence sur le résultat. Reportez-vous aux notes pour les valeurs de cet argument.

Valeur renvoyée

Entier

Remarques

L’entier retourné peut être n’importe quelle combinaison de valeurs définies dans VisSpatialRelationCodes dans la bibliothèque de types Visio. La propriété SpatialRelation renvoie zéro (0) si les deux formes comparées n’entretiennent pas l’une des relations décrites dans le tableau de la rubrique VisSpatialRelationCodes.

L'argument Indicateurs peut être l'une des combinaisons de valeurs des constantes définies dans le tableau suivant. Ces constantes sont déclarées dans VisSpatialRelationFlags dans la bibliothèque de types Visio. 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.

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.
visSpatialIncludeHidden &H10 Réservé à une utilisation future. Ne pas utiliser.
visSpatialIgnoreVisible &H20 Ne tient pas compte des sections Geometry visibles. Par défaut, les sections Geometry visibles ont une incidence sur le résultat.

Remarque

La propriété SpatialRelation 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) montre comment utiliser la propriété SpatialRelation dans un gestionnaire d’événements pour l’événement ShapeAdded afin de déterminer la relation spatiale entre les formes.

Avant d’ajouter le code suivant à votre projet VBA, vérifiez qu’il existe au moins une forme sur la page de dessin. Une fois ce code ajouté, ajoutez une autre forme à votre dessin.

Public Sub Document_ShapeAdded(ByVal Shape As IVShape) 
 
    Dim vsoShapeOnPage As Visio.Shape  
    Dim intTolerance As Integer 
    Dim intReturnValue As VisSpatialRelationCodes  
    Dim intFlag As VisSpatialRelationFlags  
    Dim strReturn As String 
    On Error GoTo errHandler  
 
    'Initialize tolerance argument. 
    intTolerance = 0.25  
 
    'Initialize flags argument. 
    intFlag = visSpatialIncludeHidden  
    For Each vsoShapeOnPage In ActivePage.Shapes  
 
        'Get the spatial relationship. 
        intReturnValue = Shape.SpatialRelation(vsoShapeOnPage, _  
            intTolerance, intFlag)  
 
        'Convert return code to string value. 
        Select Case intReturnValue       
            Case VisSpatialRelationCodes.visSpatialContain  
                strReturn = "Contains"  
            Case VisSpatialRelationCodes.visSpatialContainedIn  
                strReturn = "is Contained in"  
            Case VisSpatialRelationCodes.visSpatialOverlap  
                strReturn = "overlaps"  
            Case VisSpatialRelationCodes.visSpatialTouching  
                strReturn = "is touching"  
            Case Else 
                strReturn = "has no relation with"  
        End Select  
        
        'Display relationship in the shape's text. 
        vsoShapeOnPage.Text = Shape.Name & " " & strReturn & " " & _  
            vsoShapeOnPage.Name  
 
    Next  
 
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.