Clase ShapeNode (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.

El principal procedimiento de la clase ShapeNode es ShapeNodes.Delete

Set

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)

Los siguientes procedimientos se pueden usar para establecer variables de clase ShapeNode : ShapeNodes.Item, Shape.Nodes y ShapeRange.Nodes

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

Métodos

Este es el método principal de la clase ShapeNode

ShapeNodes.Delete - Elimina el objeto.

Dim lngIndex As Long: lngIndex = 
ActiveChart.OLEObjects.ShapeRange.Nodes.Delete Index:=lngIndex

Otros Métodos

ShapeNodes.Insert - Inserta un nodo en una forma libre.

ShapeNodes.Item - Devuelve un solo objeto de una colección.

ShapeNodes.SetEditingType - Establece el tipo de edición del nodo especificado por Index. Si el nodo es un punto de control de un segmento curvado, este método establece el tipo de edición del nodo adyacente que une los dos segmentos. Observe que, dependiendo del tipo de edición, este método puede afectar a la posición de los nodos adyacentes.

ShapeNodes.SetPosition - Establece la ubicación del nodo especificado por Index. Tenga en cuenta que, según el tipo de modificación del nodo, este método puede afectar a la posición de los nodos adyacentes.

ShapeNodes.SetSegmentType - Establece el tipo de segmento del segmento que sigue al nodo especificado por Index. Si el nodo es un punto de control de un segmento curvo, este método establece el tipo de segmento de esa curva. Tenga en cuenta que esto puede afectar al número total de nodos insertando o eliminando nodos adyacentes.

Propiedades

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.

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

Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim objParent As Object
Set objParent = ActiveChart.OLEObjects.ShapeRange.Nodes(1).Parent

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

Dim lngPoints As Long
lngPoints = ActiveChart.OLEObjects.ShapeRange.Nodes(1).Points

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.

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

ShapeNodes.Count Devuelve un valor de tipo Integer que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveChart.OLEObjects.ShapeRange.Nodes.Count

ShapeNodes.Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim objParent As Object
Set objParent = ActiveChart.OLEObjects.ShapeRange.Nodes.Parent