【Word VBA】ギザギザ丸描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
'
Public Sub ギザギザ丸描画マクロ()
    Const JAGGLEFT = 80      '描画開始位置X
    Const JAGGTOPP = 80       '      Y
    '
    Const JAGGCOLS = 4      '横/描画数
    Const JAGGROWS = 3      '縦/描画数
    '
    Const JAGGVPIT = 60              '横/描画間隔
    Const JAGGHPIT = 60              '縦/描画間隔
    '
    Const JAGGRAD1 = 28             '山の半径
    Const JAGGRAD2 = 14             '谷の半径
    '
    Const JAGGCONT = 36            '山と谷の数
    Const JAGGLNWE = 1.5          '線の太さ
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer
    Dim Kp As Integer
    Dim intBxp As Integer, intByp As Integer
    Dim intCxp As Integer, intCyp As Integer
    Dim intRad(1) As Integer
    Dim lngCol As Long, sngSrd As Single
    '
    lngCol = RGB(0, 139, 139)            '←線色
    sngSrd = ((4 * Atn(1)) / 180) _
               * (360 \ JAGGCONT)         '←線描画角
    '
    intBxp = JAGGLEFT + JAGGVPIT / 2     '描画開始中心位置
    intByp = JAGGTOPP + JAGGHPIT / 2
    For Jp = 0 To JAGGROWS - 1
        intCyp = intByp + JAGGHPIT * Jp
        For Ip = 0 To JAGGCOLS - 1
            intCxp = intBxp + JAGGVPIT * Ip
            For Kp = 0 To JAGGCONT - 1
                intRad((Kp + 0) Mod 2) = JAGGRAD1
                intRad((Kp + 1) Mod 2) = JAGGRAD2
                '*ギザギザ線描画
                With ActiveDocument.Shapes.AddLine( _
                    intRad(0) * Cos(sngSrd * (Kp + 0)) + intCxp, _
                    intRad(0) * Sin(sngSrd * (Kp + 0)) + intCyp, _
                    intRad(1) * Cos(sngSrd * (Kp + 1)) + intCxp, _
                    intRad(1) * Sin(sngSrd * (Kp + 1)) + intCyp _
                    ).Line
                   .ForeColor.RGB = lngCol            '←線色
                   .Weight = JAGGLNWE               '←線の太さ
                End With
            Next Kp
        Next Ip
    Next Jp
End Sub

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