Ok, here's what I ended up with. I put this code on my userform. It's probably not the most streamlined of code, but it works great for me.
[vba]
Private Sub btn_Cancel_Click()
Call btn_reset_Click
Unload Me
End Sub
Private Sub btn_OK_Click()
Dim oLines As Long 'number of line divisions
Dim dpi As Long
Dim pageX As Single
Dim pageY As Single
Dim radiusX As Double
Dim radiusY As Double
Dim resultX As Double
Dim resultY As Double
Dim i As Long
Dim myAngle As Single
Dim myPi As Single
myPi = 3.14159265358979
dpi = 72 'dpi value (normally 72)
If Not tb_X.Value = "" Or Not tb_Y.Value = "" Then
oLines = ActiveWindow.Selection.ShapeRange.Count
For i = 1 To oLines
With ActiveWindow.Selection.ShapeRange(i)
If opt_noPM.Value = True Then
pageX = 356.4
pageY = 266.4
ElseIf opt_PM.Value = True Then
pageX = 356.4
pageY = 293.76
End If
radiusX = tb_X.Value * dpi / 2
radiusY = tb_Y.Value * dpi / 2
myAngle = (i * (myPi * 2)) / oLines
resultX = (-Cos(myAngle) * radiusX) + pageX 'X value
resultY = (-Sin(myAngle) * radiusY) + pageY 'Y value
.left = resultX
.top = resultY
End With
Next i
Call btn_reset_Click
Unload Me
End If
End Sub
Private Sub btn_reset_Click()
tb_X = ""
tb_Y = ""
End Sub
[/vba]