Partilhar via


Propriedade Shape.SpatialNeighbors (Visio)

Retorna um objeto Selection que representa as formas que atendem a certos critérios em relação a uma forma especificada. Somente leitura.

Sintaxe

expressão. SpatialNeighbors (Relação, Tolerância, Sinalizadores, ResultRoot)

expressão Uma variável que representa um objeto Shape.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Relation Obrigatório Integer Um inteiro que descreve o tipo de relação a ser usada.
Tolerance Obrigatório Double Uma distância em unidades de desenho internas com relação ao espaço da coordenada definido pela forma pai.
Flags Obrigatório Integer Sinalizadores que influenciam o tipo de entradas retornadas nos resultados.
ResultRoot Opcional Variant Um objeto Shape que representa uma página ou um grupo.

Valor de retorno

Seleção

Comentários

Para valores do argumento Relation, consulte o tópico da propriedade SpatialRelation.

O argumento Flags pode ser qualquer combinação dos valores das constantes definidas na tabela a seguir. Estas constantes também estão definidas em VisSpatialRelationFlags na biblioteca de tipos do Visio.

Constant Valor Descrição
visSpatialIncludeContainerShapes &H80 Incluir contêineres. Por padrão, contêineres não estão incluídos.
visSpatialIncludeDataGraphics &H40 Inclui formas de texto explicativo do gráfico de dados e suas subformas. Por padrão, as formas de texto explicativo do gráfico de dados e suas subformas não são incluídas. Se a própria forma pai for um texto explicativo do gráfico de dados, as pesquisas serão feitas entre a geometria da forma pai e formas não relacionadas a texto explicativo, a menos que esse sinalizador esteja definido.
visSpatialIncludeGuides &H2 Considera a seção Geometry de uma guia. Por padrão, os guias não influenciam o resultado.
visSpatialFrontToBack &H4 Ordena itens da frente para trás.
visSpatialBackToFront &H8 Ordena itens de trás para frente.
visSpatialIncludeHidden &H10 Considera seções Geometry ocultas. Por padrão, seções de Geometria ocultas não influenciam o resultado.
visSpatialIgnoreVisible &H20 Não considera seções Geometry visíveis. Por padrão, seções Geometry visíveis influenciam o resultado.

Use a célula NoShow para determinar se uma seção Geometry está oculta ou visível. Seções Geometry ocultas possuem um valor de TRUE e seções Geometry visíveis possuem um valor de FALSE na célula NoShow.

Se Relation não for especificado, a propriedade SpatialNeighbors usará toda a relação possível como critérios.

A partir do Visio 2002, se Flags contém VisSpatialFrontToBack, os itens no objeto Selection retornados pela propriedade SpatialNeighbors são ordenados de frente para trás. Se visSpatialBackToFront for definido, os itens retornados serão ordenados de trás para frente. Se esse sinalizador não estiver definido ou se você estiver usando uma versão anterior do Visio, a ordem será imprevisível. Você pode determinar a ordem usando a propriedade Index das formas identificadas no objeto Selection .

Se você não especificar ResultRoot, essa propriedade retorna um objeto Selection que representa as formas que atendem a certos critérios em relação à forma especificada. Se você especificar ResultRoot, essa propriedade retornará um objeto Selection que representa todas as formas no objeto Shape especificado por ResultRoot que atendem a determinados critérios em relação à forma especificada. Por exemplo, especifique ResultRoot para encontrar todas as formas dentro de um grupo próximas a uma forma específica.

Se ResultRoot estiver especificado, mas não estiver na mesma página ou no mesmo mestre do objeto Shape com o qual você está comparando, a propriedade SpatialNeighbors levantará uma exceção e retornará Nothing.

Quando ela compara duas formas, a propriedade SpatialNeighbors não considera a largura da linha de uma guia, as sombras, as extremidades de linha, os pontos de controle ou os pontos de conexão.

Exemplo

Este exemplo do Microsoft Visual Basic for Applications (VBA) mostra como usar a propriedade SpatialNeighbors em um manipulador de eventos para o evento ShapeAdded determinar se uma forma está contida na outra.

Antes de adicionar o código a seguir ao seu projeto VBA, adicione pelo menos uma forma ao desenho. Em seguida, adicione outra forma ao seu desenho, arrastando-a de um estêncil ou desenhando-a, posicionando-a para que ela fique completamente contida em uma forma existente.

 
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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.