【Word VBA】十二角形模様描画マクロ▽ソースコード

記事
IT・テクノロジー
HC231015A.png

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

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す