This should do it. After doing some testing it seems to be specifically related to using 'pline.Placement = xlFreeFloating'. I have a specific reason for using it but I can probably live without it in the general case. I do realize
that this isn't really an intended use case, the entirety of this project is pretty much completely out of the realm of every day Excel use.
Private running As Boolean
Sub main()
running = True
While running = True
render
Wend
End Sub
Public Sub render()
Dim shp As Shape
Dim pline As Shape
Dim i As Long
Dim faceArray(1 To 5, 1 To 2) As Single
For Each shp In Sheet1.Shapes
shp.Delete
Set shp = Nothing
Next shp
For i = 0 To 30
faceArray(1, 2) = 1
faceArray(1, 1) = 1
faceArray(2, 2) = 1
faceArray(2, 1) = 10
faceArray(3, 2) = 10
faceArray(3, 1) = 10
faceArray(4, 2) = 10
faceArray(4, 1) = 1
faceArray(5, 2) = faceArray(1, 2)
faceArray(5, 1) = faceArray(1, 1)
Set pline = Sheet1.Shapes.AddPolyline(faceArray)
pline.Placement = xlFreeFloating
Set pline = Nothing
Next i
DoEvents
End Sub