Shape.SpatialRelation プロパティ (Visio)

1 つの図形と別の図形の空間関係を表す整数を返します。 両方の図形が同じページ上、または同じマスター シェイプ内にある必要があります。 読み取り専用です。

構文

SpatialRelation (OtherShapeToleranceFlags)

: Shape オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
OtherShape 必須 [IVSHAPE] 比較の対象となるもう一方の Shape オブジェクトです。
Tolerance 必須 倍精度浮動小数点型 (Double) Shape オブジェクトの親によって定義された座標空間に関する距離 (内部図面単位) です。
Flags 必須 Integer 結果に影響を与えるフラグです。 この引数の値については、「備考」を参照してください。

戻り値

整数

注釈

返される整数は、Visio タイプ ライブラリの VisSpatialRelationCodes で定義されている値の任意の組み合わせにすることができます。 比較対象の 2 つの図形が、VisSpatialRelationCodes のトピックの表のいずれの関係も満たさない場合、SpatialRelation プロパティはゼロ (0) を返します。

引数 Flags には、次の表で定義された定数を組み合わせて指定できます。 これらの定数は、Visio タイプ ライブラリの VisSpatialRelationFlags で宣言されます。 [Geometry] セクションが表示されているか、非表示かを判断するには、[NoShow] セルを使用します。 [NoShow] セルの値は、[Geometry] セクションが非表示の場合は True、表示されている場合は False になります。

定数 説明
visSpatialIncludeContainerShapes &H80 コンテナーが含まれます。 既定では、コンテナーは含まれません。
visSpatialIncludeDataGraphics &H40 データ グラフィックの引き出し図形とそのサブ図形を含めます。 既定では、データ グラフィックの引き出し図形とそのサブ図形は含まれません。 親図形自体がデータ グラフィックの引き出し図形である場合、フラグを設定しなくても、親図形の座標と引き出し以外の図形の間で検索が実行されます。
visSpatialIncludeGuides &H2 ガイドの [Geometry] セクションを考慮します。 既定では、ガイドは結果に影響しません。
visSpatialIncludeHidden &H10 将来使用するために予約されています。 使用しないでください。
visSpatialIgnoreVisible &H20 表示されている [Geometry] セクションを考慮しません。 既定では、表示されている [Geometry] セクションは結果に影響を与えます。

注:

2 つの図形を比較する場合、SpatialRelation プロパティは、図形の線の幅、影、線の端点、コントロール ポイント、または接続ポイントを考慮しません。

この Microsoft Visual Basic for Applications (VBA) の例では、ShapeAdded イベントのイベント ハンドラーで SpatialRelation プロパティを使用して、図形間の空間リレーションシップを決定する方法を示します。

次のコードを VBA プロジェクトに追加する前に、図面ページに少なくとも 1 つの図形があることを確認します。 さらに、コードを追加した後、図面に別の図形を追加します。

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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。