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