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