Freigeben über


Shape.SpatialNeighbors-Eigenschaft (Visio)

Gibt ein Selection-Objekt zurück, das die Shapes darstellt, die bestimmte Kriterien in bezug auf ein angegebenes Shape erfüllen. Schreibgeschützt.

Syntax

Ausdruck. SpatialNeighbors (Relation, Tolerance, Flags, ResultRoot)

expression Eine Variable, die ein Shape-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Relation Erforderlich Integer Eine ganze Zahl, die den Typ der zu verwendenden Beziehung beschreibt.
Toleranz Erforderlich Double Ein Abstand, der in einer internen Zeichnungseinheit angegeben wird und in bezug zu der Koordinatenstelle steht, die von dem übergeordneten Shape definiert wird.
Flags Erforderlich Integer Kennzeichen, die die im Ergebnis zurückgegebenen Eintragstypen beeinflussen.
ResultRoot Optional Variant Ein Shape-Objekt, das ein Zeichenblatt oder eine Gruppe darstellt.

Rückgabewert

Selection

Hinweise

Werte, die für das Argument Relation verwendet werden können, finden Sie unter dem Thema zur SpatialRelation-Eigenschaft.

Das Argument Flags kann eine beliebige Kombination der Konstanten sein, die in der folgenden Tabelle definiert werden. Zusätzlich werden diese Konstanten auch in VisSpatialRelationFlags in der Visio-Typbibliothek definiert.

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.
visSpatialFrontToBack &H4 Sortierreihenfolge von vorne nach hinten.
visSpatialBackToFront &H8 Sortierreihenfolge von hinten nach vorne.
visSpatialIncludeHidden &H10 Berücksichtigt die Abschnitte Geometry, wenn sie verborgen sind. Ausgeblendete Geometry-Abschnitte haben standardmäßig keinen Einfluss auf das Ergebnis.
visSpatialIgnoreVisible &H20 Berücksichtigt die Abschnitte Geometry nicht, wenn sie sichtbar sind. Standardmäßig wirken sich diese sichtbaren Abschnitte auf das Ergebnis aus.

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.

Wurde das Argument Relation nicht angegeben, verwendet die SpatialNeighbors-Eigenschaft alle möglichen Beziehungen als Kriterien.

Ab Microsoft Visio 2002 werden Elemente in dem Selection-Objekt, die von der SpatialNeighbors-Eigenschaft zurückgegeben wurden, von vorne nach hinten sortiert, wenn das Argument Flags die VisSpatialFrontToBack-Konstante enthält. Wenn visSpatialBackToFront festgelegt wird, werden die zurückgegebenen Elemente von hinten nach vorne sortiert. Wenn dieses Kennzeichen nicht festgelegt ist, oder wenn Sie eine frühere Version von Visio ausführen, kann die Reihenfolge nicht vorausgesagt werden. Sie können die Reihenfolge mithilfe der Index-Eigenschaft der im Selection-Objekt identifizierten Formen bestimmen.

Wenn Sie ResultRoot nicht angeben, gibt diese Eigenschaft ein Selection-Objekt zurück, das die Formen darstellt, die bestimmte Kriterien in Bezug auf die angegebene Form erfüllen. Wenn Sie ResultRoot angeben, gibt diese Eigenschaft ein Selection-Objekt zurück, das alle Formen im von ResultRoot angegebenen Shape-Objekt darstellt, die bestimmte Kriterien in Bezug auf die angegebene Form erfüllen. Geben Sie z. B. ResultRoot an, um alle Shapes innerhalb einer Gruppe zu suchen, die sich in der Nähe einer angegebenen Form befinden.

Wird das Argument ResultRoot angegeben und befindet es sich auf einem anderen Zeichenblatt oder in einem anderen Master-Shape als das Shape-Objekt, mit dem es verglichen wird, löst die SpatialNeighbors-Eigenschaft eine Ausnahme aus und gibt das Schlüsselwort Nothing zurück.

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

Beispiel

Das folgende VBA-Makro (Microsoft Visual Basic für Applikationen) (VBA) zeigt, wie die SpatialNeighbors-Eigenschaft in einem Ereignishandler für das ShapeAdded-Ereignis verwendet werden kann, um zu bestimmen, ob ein Shape in einem anderen Shape enthalten ist.

Bevor Sie ihrem VBA-Projekt den folgenden Code hinzufügen, fügen Sie ihrer Zeichnung mindestens eine Form hinzu. Fügen Sie anschließend ein weiteres Shape zu dieser Zeichnung hinzu, indem Sie es von einer Schablone ziehen oder es zeichnen und so positionieren, dass es vollständig innerhalb des vorhandenen Shapes enthalten ist.

 
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

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.