Option Explicit
Option Base 0
'
Public Sub 十二角形模様描画マクロ()
Const DODECTRX = 200 '描画中心位置X
Const DODECTRY = 180 ' Y
'
Const DODERADI = 100 '十二角形半径
Const DODEDVCN = 10 '線描画 本数
Const DODESTEP = (DODERADI / DODEDVCN)
'
Const DODELNCL = &H8B8B00 '線の色(LightCyan)
Const DODELNWE = 1 '線の太さ
'---------------------------------------------------------------------------
Dim Ip As Integer, Jp As Integer
Dim intSxp As Integer, intSyp As Integer
Dim intExp As Integer, intEyp As Integer
Dim sngSit As Single
'
'
sngSit = (Atn(1) / 45) * (360 / 12)
For Ip = 0 To 11
intSxp = DODERADI * Cos(sngSit * Ip) + DODECTRX
intSyp = DODERADI * Sin(sngSit * Ip) + DODECTRY
'外形の線描画
With ActiveDocument.Shapes.AddLine(intSxp, intSyp, _
DODECTRX, DODECTRY).Line
.ForeColor.RGB = DODELNCL '←線色
.Weight = DODELNWE '←線の太さ
End With
'内の線描画
For Jp = 1 To DODEDVCN
intExp = (DODESTEP * Jp) _
* Cos(sngSit * (Ip + 1)) + DODECTRX
intEyp = (DODESTEP * Jp) _
* Sin(sngSit * (Ip + 1)) + DODECTRY
With ActiveDocument.Shapes.AddLine(intSxp, intSyp, _
intExp, intEyp).Line
.ForeColor.RGB = DODELNCL '←線色
.Weight = DODELNWE '←線の太さ
End With
Next Jp
Next Ip
End Sub