Classe ShapeNodes (Word VBA)

Uma coleção de todos os ShapeNode objetos de forma livre especificada. Cada objeto ShapeNode representa um nó entre segmentos em uma forma livre ou um ponto de controle de um segmento curvo de uma forma livre. Para usar uma variável de classe ShapeNodes, ela primeiro precisa ser instanciada por exemplo

Count

Retorna um Long que representa o número de nós de forma na coleção. Somente leitura.


Dim sns As ShapeNodes: Set sns =  
Dim lngCount As Long
lngCount = sns.Count

Delete

Exclui o nó de forma especificado.

Delete (Index)

Index: O número na coleção de nós de forma do nó de forma que será excluído.


Dim lngIndex As Long: lngIndex = 
Dim sns As ShapeNodes: Set sns =  
sns.Delete Index:=lngIndex

Insert

Insere um nó em uma forma livre.

Insert (Index, SegmentType, EditingType, X1, Y1, X2, Y2, X3, Y3)


Sub InsertShapeNode() 
 ActiveDocument.Shapes(3).Select 
 With Selection.ShapeRange 
 If .Type = msoFreeform Then 
 .Nodes.Insert _ 
 Index:=3, SegmentType:=msoSegmentCurve, _ 
 EditingType:=msoEditingSymmetric, x1:=35, y1:=100 
 .Fill.ForeColor.RGB = RGB(0, 0, 200) 
 .Fill.Visible = msoTrue 
 Else 
 MsgBox "This shape is not a Freeform object." 
 End If 
 End With 
End Sub

Arguments

O seguinte argumento é opcional

Index (Long) - O número do nó da forma após do qual será inserido um novo nó.

SegmentType (Office.MsoSegmentType) - O tipo de linha que conecta o nó inserido aos nós vizinhos.

EditingType (Office.MsoEditingType) - A propriedade de edição do nó inserido.

X1 (Single) - Se o EditingType do novo segmento for msoEditingAuto, este argumento especificará a distância horizontal, medida em pontos, do canto superior esquerdo do documento até o ponto inicial do novo segmento. Se o EditingType do novo nó for msoEditingCorner, este argumento especificará a distância horizontal, medida em pontos, do canto superior esquerdo do documento até o primeiro ponto de controle do novo segmento.

Y1 (Single) - Se o EditingType do novo segmento for msoEditingAuto, este argumento especificará a distância vertical, medida em pontos, do canto superior esquerdo do documento até o ponto inicial do novo segmento. Se o EditingType do novo nó for msoEditingCorner, este argumento especificará a distância vertical, medida em pontos, do canto superior esquerdo do documento até o primeiro ponto de controle do novo segmento.

Optional arguments

Os seguintes argumentos são opcionais

X2 (Single) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal, medida em pontos, do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

Y2 (Single) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância vertical, medida em pontos, do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

X3 (Single) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal, medida em pontos, do canto superior esquerdo do documento até o ponto final do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

Y3 (Single) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância vertical, medida em pontos, do canto superior esquerdo do documento até o ponto final do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

Item

Retorna um objeto ShapeNode individual em uma coleção.

Item (Index)

Index: O objeto individual a ser retornado. Pode ser um Long que indica a posição ordinal do objeto individual.


Dim sns As ShapeNodes: Set sns =  
Dim shpn As ShapeNode
Set shpn = sns(Index:=1)

SetEditingType

Define o tipo de edição do nó especificado por Index.

Se o nó for um ponto de controle para um segmento curvo, esse método definirá o tipo de edição do nó adjacente a ele que une dois segmentos. Dependendo do tipo de edição, esse método pode afetar a posição de nós adjacentes.

SetEditingType (Index, EditingType)


Dim lngLoop As lngLoop 
 
With ActiveDocument.Shapes(3).Nodes 
 For lngLoop = 1 to .Count 
 If .Item(lngLoop).EditingType = msoEditingCorner Then 
 .SetEditingType lngLoop, msoEditingSmooth 
 End If 
 Next lngLoop 
End With

Arguments

O seguinte argumento é opcional

Index (Long) - O nó cujo tipo de edição será definido.

EditingType (Office.MsoEditingType) - A propriedade de edição do vértice.

SetPosition

Define a localização do nó especificado por Index.

Dependendo do tipo de edição do nó, este método pode afetar a posição dos nós adjacentes.

SetPosition (Index, X1, Y1)


With ActiveDocument.Shapes(3).Nodes 
 pointsArray = .Item(2).Points 
 currXvalue = pointsArray(1, 1) 
 currYvalue = pointsArray(1, 2) 
 .SetPosition 2, currXvalue + 200, currYvalue + 300 
End With

Arguments

O seguinte argumento é opcional

Index (Long) - O nó cuja posição será definida.

X1 (Single) - A posição (em pontos) do novo nó em relação ao canto superior esquerdo do documento.

Y1 - Single

SetSegmentType

Define o tipo do segmento que segue o nó especificado por Index.

Se o nó for um ponto de controle de um segmento curvo, esse método definirá o tipo de segmento dessa curva. Observe que isso pode afetar o número total de nós determinado pela inserção ou exclusão de nós adjacentes.

SetSegmentType (Index, SegmentType)


Dim lngLoop As Long 
 
With ActiveDocument.Shapes(3).Nodes 
 lngLoop = 1 
 While lngLoop <= .Count 
 If .Item(lngLoop).SegmentType = msoSegmentLine Then 
 .SetSegmentType lngLoop, msoSegmentCurve 
 End If 
 lngLoop = lngLoop + 1 
 Wend 
End With

Arguments

O seguinte argumento é opcional

Index (Long) - O nó cujo tipo de segmento será definido.

SegmentType (Office.MsoSegmentType) - Especifica se o segmento tem a forma de uma reta ou curva.