Shape.SpatialRelation-Eigenschaft (Visio)

Gibt eine ganze Zahl zurück, die die räumliche Beziehung eines Shapes zu einem anderen Shape darstellt. Dabei müssen beide Shapes sich auf dem gleichen Zeichenblatt oder in dem gleichen Master-Shape befinden. Schreibgeschützt.

Syntax

Ausdruck. SpatialRelation (OtherShape, Tolerance, Flags)

expression Eine Variable, die ein Shape-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
OtherShape Erforderlich [IVSHAPE] Das andere Shape-Objekt, auf das sich der Vergleich bezieht.
Toleranz Erforderlich Double Ein Abstand, der in einer internen Zeichnungseinheit angegeben wird und in Bezug zu der Koordinatenstelle steht, die von dem übergeordneten Shape des Shape-Objekts definiert wird.
Flags Erforderlich Integer Das Flag, das sich auf das Ergebnis auswirkt. Beachten Sie die Hinweise zu den Werten dieses Arguments.

Rückgabewert

Ganze Zahl

Hinweise

Die zurückgegebene ganze Zahl kann eine beliebige Kombination der werte sein, die in VisSpatialRelationCodes in der Visio-Typbibliothek definiert sind. Die SpatialRelation-Eigenschaft gibt null (0) zurück, wenn sich die beiden zu vergleichenden Formen in keiner der Beziehungen befinden, die in der Tabelle des Themas VisSpatialRelationCodes erläutert werden.

Das Argument Flags kann eine beliebige Kombination der Konstanten sein, die in der folgenden Tabelle definiert werden. Diese Konstanten werden in VisSpatialRelationFlags in der Visio-Typbibliothek deklariert. Verwenden Sie die Zelle NoShow, um zu bestimmen, ob der Abschnitt Geometry verborgen oder sichtbar ist. Für verborgene Abschnitte enthält die Zelle NoShow den Wert True und für sichtbare Abschnitte enthält diese Zelle den Wert False.

Konstante Wert Beschreibung
visSpatialIncludeContainerShapes &H80 Container einbeziehen. Standardmäßig sind Container nicht enthalten.
visSpatialIncludeDataGraphics &H40 Enthält Beschriftungs-Shapes (einschließlich untergeordneter Shapes) für Datengrafiken. Standardmäßig werden Beschriftungs-Shapes für Datengrafiken und ihre untergeordneten Shapes nicht berücksichtigt. Wenn das übergeordnete Shape eine Datengrafikbeschriftung ist und dieses Kennzeichen nicht festgelegt ist, werden Suchläufe zwischen der Geometrie des übergeordneten Shapes und Shapes, die keine Beschriftungs-Shapes sind, durchgeführt.
visSpatialIncludeGuides &H2 Berücksichtigt den Abschnitt Geometry einer Führungslinie. Standardmäßig beeinflussen Führungslinien das Ergebnis nicht.
visSpatialIncludeHidden &H10 Reserviert für zukünftige Verwendung. Nicht verwenden.
visSpatialIgnoreVisible &H20 Berücksichtigt die Abschnitte Geometry nicht, wenn sie sichtbar sind. Standardmäßig wirken sich diese sichtbaren Abschnitte auf das Ergebnis aus.

Hinweis

Bei dem Vergleich zweier Shapes berücksichtigt die SpatialRelation-Eigenschaft nicht die Breite der folgenden Elemente eines Shapes: Linien, Schatten, Linienenden, Steuerpunkte oder Verbindungspunkte.

Beispiel

Dieses Beispiel für Microsoft Visual Basic for Applications (VBA) zeigt, wie die SpatialRelation-Eigenschaft in einem Ereignishandler für das ShapeAdded-Ereignis verwendet wird, um die räumliche Beziehung zwischen Shapes zu bestimmen.

Stellen Sie vor dem Hinzufügen des folgenden Codes zu Ihrem VBA-Projekt sicher, dass mindestens eine Form auf dem Zeichenblatt vorhanden ist. Fügen Sie anschließend den Code und dann ein weiteres Shape zu dieser Zeichnung hinzu.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.