I am trying to run the following code
Sub builder()
Dim shpbld As FreeformBuilder
Dim shp As Shape
shpbld = ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 240.5, 60)
With shpbld
.AddNodes msoSegmentLine, msoEditingAuto, 202.25, 60
.AddNodes msoSegmentLine, msoEditingAuto, 185, 105
.AddNodes msoSegmentLine, msoEditingAuto, 239.75, 105
shp = .ConvertToShape.Select
End With
End Sub
However, it is giving type mismatch error for shp. What am I doing wrong?
When assigning an object to a variable, you need to use the keyword Set
...
Sub builder()
Dim shpbld As FreeformBuilder
Dim shp As Shape
Set shpbld = ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 240.5, 60)
With shpbld
.AddNodes msoSegmentLine, msoEditingAuto, 202.25, 60
.AddNodes msoSegmentLine, msoEditingAuto, 185, 105
.AddNodes msoSegmentLine, msoEditingAuto, 239.75, 105
Set shp = .ConvertToShape
End With
End Sub