Clase ShapeNode - geometría (Excel VBA)

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


Dim shpn as ShapeNode
Set shpn = ActiveChart.OLEObjects.ShapeRange.Nodes(Index:=1)

For Each

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


Dim shpnNode As ShapeNode
For Each shpnNode In ActiveChart.OLEObjects.ShapeRange.Nodes
	
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. Un MsoEditingType de sólo lectura.

Esta propiedad es de sólo lectura. Utilice el método SetEditingType para establecer el valor de esta propiedad.


Dim metEditingType As Office.MsoEditingType
metEditingType = ActiveChart.OLEObjects.ShapeRange.Nodes(1).EditingType

Points

Devuelve la posición del nodo especificado como un par de coordenadas. Cada coordenada se expresa en puntos. Variant de solo lectura.

Esta propiedad es de sólo lectura. Use el método SetPosition para establecer el valor de esta propiedad.


Set myDocument = Worksheets(1) 
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. MsoSegmentType de solo lectura.

Utilice el método SetSegmentType para establecer el valor de esta propiedad.


Dim mstSegmentType As Office.MsoSegmentType
mstSegmentType = ActiveChart.OLEObjects.ShapeRange.Nodes(1).SegmentType