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

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


Dim fbr as FreeformBuilder
Set fbr = Application.ActiveDocument.Background.CanvasItems

AddNodes

Inserta un nuevo segmento al final de la forma libre que se está creando y agrega los nodos que definen el segmento.

Puede utilizar este método tantas veces como desee para agregar nodos a la forma libre que está creando.

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


Dim docActive As Document 
 
Set docActive = ActiveDocument 
 
With docActive.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 - Single

Y2 - Single

X3 (Single) - 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 extremo final del nuevo segmento.

Y3 - Single

ConvertToShape

Crea una forma con las características geométricas del objeto especificado.

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

ConvertToShape (Anchor)

Anchor: Un objeto Range que representa el texto al que está enlazada a la forma.


Dim shpConvertToShape As Shape
Set shpConvertToShape = ActiveDocument.Background.CanvasItems.BuildFreeform.ConvertToShape()