Classe ShapeNode - geometria (Word VBA)
A classe ShapeNode representa a geometria e as propriedades de edição de geometria dos nós em uma forma livre definida pelo usuário. Nós incluem os vértices entre os segmentos da forma livre e os pontos de controle para os segmentos curvos. O objeto ShapeNode é um membro da coleção ShapeNodes. A coleção ShapeNodes contém todos os nós de uma forma livre. Para usar uma variável de classe ShapeNode, ela primeiro precisa ser instanciada por exemplo
For Each
Aqui está um exemplo de processamento dos itens ShapeNode em uma coleção.
Dim shp As Shape: Set shp =
Dim shpnNode As ShapeNode
For Each shpnNode In shp.Nodes
With shpnNode
End With
Next shpnNode
EditingType
Se o nó especificado for um vértice, essa propriedade retorna um valor que indica como as alterações feitas no nó afetam os dois segmentos conectados ao nó. Somente leitura MsoEditingType.
Se o nó for um ponto de controle de um segmento curvo, essa propriedade retorna o tipo de edição do vértice adjacente. Essa propriedade é somente leitura. Use o método SetEditingType para definir o valor dessa propriedade.
Dim docActive As Document
Dim intCount As Integer
Set docActive = ActiveDocument
With docActive.Shapes(3).Nodes
For intCount = 1 to .Count
If .Item(intCount).EditingType = msoEditingCorner Then
.SetEditingType intCount, msoEditingSmooth
End If
Next
End With
Points
Retorna a posição do nó especificado como um par de coordenadas. somente leitura.
Cada coordenada é expressa em pontos. Use o método SetPosition para definir o local do nó.
Set myDocument = ActiveDocument
With myDocument.Shapes(3).Nodes
pointsArray = .Item(2).Points
currXvalue = pointsArray(1, 1)
currYvalue = pointsArray(1, 2)
.SetPosition 2, currXvalue + 200, currYvalue + 300
End With
SegmentType
Retorna um valor que indica se o segmento associado com o nó especificado é reto ou curvo. MsoSegmentTypesomente leitura.
Se o nó especificado for um ponto de controle para um segmento curvo, essa propriedade retornará msoSegmentCurve. Use o método SetSegmentType para definir o valor dessa propriedade.
Set myDocument = ActiveDocument
With myDocument.Shapes(3).Nodes
n = 1
While n <= .Count
If .Item(n).SegmentType = msoSegmentLine Then
.SetSegmentType n, msoSegmentCurve
End If
n = n + 1
Wend
End With