Clase FreeformBuilder - geometría de una forma libre mientras se está creando (Excel VBA)

La clase FreeformBuilder representa la geometría de una forma libre mientras se está creando. Para usar una variable de clase FreeformBuilder, primero debe ser instanciado, por ejemplo


Dim fbr as FreeformBuilder
Set fbr = Application.ActiveChart.Shapes

AddNodes

Agrega un punto en la forma actual y, a continuación, dibuja una línea desde el nodo actual hasta el último nodo que se ha agregado.

MsoEditingType no puede ser msoEditingSmooth ni msoEditingSymmetric.

AddNodes (SegmentType, EditingType, X1, Y1, X2, Y2, X3, Y3)


Set myDocument = Worksheets(1) 
With myDocument.Shapes.BuildFreeform(msoEditingCorner, 360, 200) 
    .AddNodes msoSegmentCurve, msoEditingCorner, _ 
        380, 230, 400, 250, 450, 300 
    .AddNodes msoSegmentCurve, msoEditingAuto, 480, 200 
    .AddNodes msoSegmentLine, msoEditingAuto, 480, 400 
    .AddNodes msoSegmentLine, msoEditingAuto, 360, 200 
    .ConvertToShape 
End With

Arguments

Estos son los argumentos con nombre :

SegmentType (Office.MsoSegmentType) - Tipo de segmento que se va a agregar.

EditingType (Office.MsoEditingType) - Propiedad de modificación del vértice.

X1 - Single

Y1 - Single

Optional arguments

Los siguientes argumentos son opcionales

X2 - Long

Y2 - Long

X3 (Long) - Si el parámetro EditingType del nuevo segmento es msoEditingCorner, este argumento especifica la distancia horizontal (en puntos) desde la esquina superior izquierda del documento hasta el segundo punto de control del nuevo segmento.

Y3 - Long

ConvertToShape

Crea una forma que tiene las características geométricas del objeto FreeformBuilder especificado.

Debe aplicar el método AddNodes a un objeto FreeformBuilder al menos una vez antes de utilizar el método ConvertToShape.


Dim shpConvertToShape As Shape
Set shpConvertToShape = ActiveChart.Shapes.BuildFreeform.ConvertToShape()