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.