Shape.SpatialNeighbors プロパティ (Visio)

指定した図形に関して特定の基準を満たす図形を表す Selection オブジェクトを返します。 読み取り専用です。

構文

SpatialNeighbors (Relation, Tolerance, Flags, ResultRoot)

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

パラメーター

名前 必須 / オプション データ型 説明
Relation 必須 Integer 使用する関係の種類を示す整数です。
Tolerance 必須 倍精度浮動小数点型 (Double) 親図形によって定義された座標空間を基準として、内部図面単位で表された距離です。
Flags 必須 Integer 結果として返されるエントリの種類を制御するフラグです。
ResultRoot 省略可能 バリアント型 (Variant) ページまたはグループを表す Shape オブジェクトです。

戻り値

Selection

注釈

引数 Relation の値については、SpatialRelation プロパティのトピックを参照してください。

引数 Flags には、次の表で定義された定数を組み合わせて指定できます。 これらの定数は、Visio タイプ ライブラリの VisSpatialRelationFlags でも定義されます。

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

[Geometry] セクションが表示されているか、非表示かを判断するには、[NoShow] セルを使用します。 [NoShow] セルの値は、[Geometry] セクションが非表示の場合は True、表示されている場合は False になります。

Relation を指定しない場合、SpatialNeighbors プロパティは、使用可能なすべての関係を基準として使用します。

Visio 2002 以降、FlagsVisSpatialFrontToBack が含まれている場合、SpatialNeighbors プロパティによって返される Selection オブジェクトの項目は前から後に並べられます。 visSpatialBackToFront が設定されている場合、返される項目は後ろから前に並べられます。 このフラグが設定されていない場合、または Visio の以前のバージョンを実行している場合、順序は予測不可能です。 順序は、Selection オブジェクトで識別された図形の Index プロパティを使用して判別できます。

ResultRoot を指定しない場合、このプロパティは指定した図形に関して特定の基準を満たす図形を示す Selection オブジェクトを返します。 ResultRoot を指定した場合、このプロパティは ResultRoot によって指定された Shape オブジェクト内の図形のうち、指定した図形に関する特定の基準を満たすすべての図形を表す Selection オブジェクトを返します。 たとえば、指定した図形の近くにあるグループ内のすべての図形を検索する場合に、ResultRoot を使用します。

指定した ResultRoot が比較対象の Shape オブジェクトと同じページ上、または同じマスター シェイプ内にない場合、SpatialNeighbors プロパティは例外を発生し、Nothing を返します。

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

この Microsoft Visual Basic for Applications (VBA) の例は、ShapeAdded イベントのイベント ハンドラー内で SpatialNeighbors プロパティを使用して、ある図形が別の図形に含まれているかどうかを判別する方法を示します。

次のコードを VBA プロジェクトに追加する前に、少なくとも 1 つの図形を図面に追加します。 次に、別の図形をステンシルからドラッグするか描画して図面に追加し、最初の図形内に完全に収まるように配置します。

 
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

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

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