會傳回 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。
如果未指定 Relation,SpatialNeighbors 屬性就會使用所有可能的關聯做為準則。
從 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 支援與意見反應。