Shape.SpatialRelation プロパティ (Visio)
1 つの図形と別の図形の空間関係を表す整数を返します。 両方の図形が同じページ上、または同じマスター シェイプ内にある必要があります。 読み取り専用です。
構文
式。SpatialRelation (OtherShape、 Tolerance、 Flags)
式: 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 のサポートおよびフィードバックを参照してください。