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.
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.