Option Explicit
Option Base 0
'
Public Sub 回転する三角形描画マクロ()
Const TRIACXPS = 200 '描画の中心位置 X
Const TRIACYPS = 150 ' Y
Const TRIAWIDT = 40 '三角形の幅
Const TRIAHEIG = 80 '三角形の高さ
'
Const TRIACONT = 24 '三角形の数/一周
'---------------------------------------------------------------------------
Dim Ip As Integer
Dim intXp As Integer, intYp As Integer
Dim intAng As Integer, dblRd As Double
'
dblRd = (4 * Atn(1)) / 180
intAng = 360 \ TRIACONT
For Ip = 0 To TRIACONT - 1
intXp = (TRIAHEIG / 2) * Cos(dblRd * (intAng * Ip)) + TRIACXPS
intYp = (TRIAHEIG / 2) * Sin(dblRd * (intAng * Ip)) + TRIACYPS
'
With ActiveDocument.Shapes.AddShape(msoShapeIsoscelesTriangle, _
intXp - TRIAWIDT \ 2, intYp - TRIAHEIG \ 2, _
TRIAWIDT, TRIAHEIG)
.Fill.Visible = False
.Line.ForeColor.RGB = vbRed '←線色
.Line.Visible = True
.Adjustments(1) = 0.5 '←二等辺三角形
.Rotation = intAng * Ip + 90
End With
Next Ip
End Sub
Const TRIACONT = 12 '長方形の数/一周
Const TRIACONT = 6 '長方形の数/一周