Class FreeformBuilder (Word VBA)
The class FreeformBuilder represents the geometry of a freeform while it is being built. To use a FreeformBuilder class variable it first needs to be instantiated, for example
Dim fbr as FreeformBuilder
Set fbr = Application.ActiveDocument.Background.CanvasItems
AddNodes
Inserts a new segment at the end of the freeform that's being created, and adds the nodes that define the segment.
You can use this method as many times as you want to add nodes to the freeform you are creating. When you finish adding nodes, use the ConvertToShape method to create the freeform you've just defined. To add nodes to a freeform after it has been created, use the Insert method of the ShapeNodes collection.
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
The following arguments are required:
SegmentType (Office.MsoSegmentType) - The type of segment to be added.
EditingType (Office.MsoEditingType) - The editing property of the vertex. If SegmentType is msoSegmentLine, EditingType must be msoEditingAuto.
X1 (Single) - If the EditingType of the new segment is msoEditingAuto, this argument specifies the horizontal distance (in points) from the upper-left corner of the document to the endpoint of the new segment. If the EditingType of the new node is msoEditingCorner, this argument specifies the horizontal distance (in points) from the upper-left corner of the document to the first control point for the new segment.
Y1 (Single) - If the EditingType of the new segment is msoEditingAuto, this argument specifies the vertical distance (in points) from the upper-left corner of the document to the endpoint of the new segment. If the EditingType of the new node is msoEditingCorner, this argument specifies the vertical distance (in points) from the upper-left corner of the document to the first control point for the new segment.
Optional arguments
The following arguments are optional
X2 (Single) - If the EditingType of the new segment is msoEditingCorner, this argument specifies the horizontal distance (in points) from the upper-left corner of the document to the second control point for the new segment. If the EditingType of the new segment is msoEditingAuto, don't specify a value for this argument.
Y2 (Single) - If the EditingType of the new segment is msoEditingCorner, this argument specifies the vertical distance (in points) from the upper-left corner of the document to the second control point for the new segment. If the EditingType of the new segment is msoEditingAuto, do not specify a value for this argument.
X3 (Single) - If the EditingType of the new segment is msoEditingCorner, this argument specifies the horizontal distance (in points) from the upper-left corner of the document to the endpoint of the new segment. If the EditingType of the new segment is msoEditingAuto, don't specify a value for this argument.
Y3 (Single) - If the EditingType of the new segment is msoEditingCorner, this argument specifies the vertical distance (in points) from the upper-left corner of the document to the endpoint of the new segment. If the EditingType of the new segment is msoEditingAuto, don't specify a value for this argument.
ConvertToShape
Creates a shape that has the geometric characteristics of the specified object. Returns a Shape object that represents the new shape.
You must apply the AddNodes method to a FreeformBuilder object at least once before you use the ConvertToShape method.
ConvertToShape (Anchor)
Anchor: A Range object that represents the text to which the shape is bound. If Anchor is specified, the anchor is positioned at the beginning of the first paragraph in the anchoring range. If this argument is omitted, the anchoring range is selected automatically and the shape is positioned relative to the top and left edges of the page.
Dim shpConvertToShape As Shape
Set shpConvertToShape = ActiveDocument.Background.CanvasItems.BuildFreeform.ConvertToShape()