共用方式為


Shape.SpatialNeighbors 的 Property (Visio)

會傳回 Selection 物件,代表符合與指定圖形相關之特定準則的圖形。 唯讀。

語法

表情SpatialNeighbors (關係容忍旗標結果根)

expression 一個用於表示 Shape 物件的變數。

參數

名稱 必要/選用 資料類型 描述
關聯性 必要 整數 描述要使用之關係類型的整數。
Tolerance 必要 雙精確度 以內部繪圖單位表示的距離,相對於父系圖形所定義的座標空間。
Flags 必要 整數 會影響結果中傳回之項目類型的旗標。
結果根 選用 Variant 代表頁面或群組的 Shape 物件。

傳回值

選取範圍

註解

如需 Relation 引數的值,請參閱 SpatialRelation 屬性主題。

Flags 引數可以是下表所定義之常數值的任何組合。 在 Visio 類型程式庫的 VisSpatialRelationFlags 中也會定義這些常數。

常數 描述
visSpatialIncludeContainerShapes &H80 包含容器。 根據預設,不包含容器。
visSpatialIncludeDataGraphics &H40 包含資料圖形註標圖形及其子圖形。 根據預設,不包含資料圖形註標圖形及其子圖形。 如果父系圖形本身是資料圖形註標,則除非有設定這個旗標,否則會在此父系圖形的幾何與非註標圖形之間進行搜尋。
vispatialIncludeGuides &H2 考量輔助線的 [幾何] 區段。 預設情況下,指南不會影響結果。
可見空間前後 &H4 由前向後排列項目。
可見空間後至前 &H8 由後向前排列項目。
visSpatialIncludeHidden &H10 考慮隱藏的 [幾何] 區段。 預設情況下,隱藏的幾何區段不會影響結果。
vis空間忽略可見 &H20 不考慮可見的 [幾何] 區段。 根據預設,可見的 [幾何] 區段會對結果有影響。

使用 NoShow 儲存格來判斷幾何區塊是隱藏還是可見。 隱藏幾何區段的值為 TRUE,可見的幾何區段在 NoShow 儲存格中的值為 FALSE。

如果未指定 RelationSpatialNeighbors 屬性就會使用所有可能的關聯做為準則。

從 Visio 2002 開始,如果 Flags 包含 VisSpatialFrontToBack,由 SpatialNeighbors 屬性傳回之 Selection 物件中的項目,就會以從前到後的順序排列。 如果有設定 visSpatialBackToFront,傳回的項目就會以從後到前的順序排列。 如果未設定此旗標,或您執行的是較早版本的 Visio,就無法預測排列順序。 您可以使用 Selection 物件中所識別圖形的 Index 屬性,來判斷排列順序。

如果您不指定 ResultRoot,此屬性就會傳回 Selection 物件,代表符合指定圖形相關之特定準則的圖形。 如果您指定 ResultRoot,此屬性就會傳回 Selection 物件,代表在 ResultRoot 指定之 Shape 物件中,符合指定圖形相關之特定準則的所有圖形。 例如,指定 ResultRoot 即可在群組中,找到接近指定圖形的所有圖形。

如果指定了 ResultRoot,但不是在您要比較的 Shape 物件的相同頁面上或相同主圖形中,SpatialNeighbors 屬性就會觸發例外並傳回 Nothing

在比較兩個圖形時,SpatialNeighbors 屬性不會考量圖形線條的寬度、陰影、線條結尾、控制點或連接點。

範例

下列 Microsoft Visual Basic for Applications (VBA) 範例會示範如何使用 ShapeAdded 事件之事件處理常式中的 SpatialNeighbors 屬性,來判斷一個圖形是否包含在另一個圖形內。

在將以下程式碼加入你的 VBA 專案之前,至少在圖紙中加入一個形狀。 然後從樣板拖曳或以繪製的方式,在繪圖中新增另一個圖形,並將圖形放置在完全包含於現有圖形內的位置。

 
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 支援與意見反應