Clase ShapeNode - geometría (Word VBA)

La clase ShapeNode representa la geometría y la geometría propiedades de modificación de los nodos definidos por el usuario libre. Para usar una variable de clase ShapeNode, primero debe ser instanciado, por ejemplo

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos ShapeNode en una colección.


Dim shp As Shape: Set shp = 
Dim shpnNode As ShapeNode
For Each shpnNode In shp.Nodes
	With shpnNode
		
	End With
Next shpnNode

EditingType

Si el nodo especificado es un vértice, esta propiedad devuelve un valor que indica cómo afectan los cambios realizados en el nodo a los dos segmentos conectados al nodo.

Si el nodo es un punto de control de un segmento curvo, esta propiedad devuelve el tipo de modificación del vértice adyacente.


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

Devuelve la posición del nodo especificado como un par de coordenadas.

Cada coordenada se expresa en puntos.


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

Devuelve un valor que indica si el segmento asociado al nodo especificado es recto o curvo.

Si el nodo especificado es un punto de control de un segmento curvo, esta propiedad devuelve msoSegmentCurve. Utilice el método SetSegmentType para establecer el valor de esta propiedad.


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