【Word VBA】もみじ描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
'
Public Sub もみじ描画マクロ()
    Const MAPLLEFT = 100                   '描画開始位置X
    Const MAPLTOPP = 100                  '      Y
    '
    Const MAPLVSPC = 50                    '横-間隔
    Const MAPLHSPC = 50                   '縦-間隔
    Const MAPLCOLS = 5                     '横/描画数
    Const MAPLROWS = 4                   '縦/描画数
    '
    Const MAPLLNWE = 1                    '線の太さ
    '
    Const MAPLRATE = 0.75                 'ポリライン倍率
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer
    Dim Kp As Integer
    Dim intDxp As Integer, intDyp As Integer
    Dim varPly As Variant
    Dim sngBas() As Single, sngDat() As Single
    '
    '*ポリラインデータ
    varPly = Array(0.3, -31.5, 0.3, -31.5, -2.2, -23.6, -3.1, -20.6, -4#, _
    -20.4, -6.1, -14.5, -6.8, -9.2, -6.6, -6.7, -6#, -2.6, -4.6, 1.6, -1.5, _
    6.6, 0.4, 9#, 0.6, 9.8, 0.7, 10.8, -1.5, 10.2, -3.5, 7#, -6.2, 3.2, _
    -8.3, 1.3, -12.1, -0.5, -17.8, -2.6, -23.2, -3.4, -23.2, -2.8, -31.8, _
   -5.2, -26.6, 0.6, -24.8, 2.8, -25.7, 3.4, -21.8, 7.4, -22.5, 7.7, -18.3, _
    12.1, -16.4, 13.3, -13.3, 14.9, -10.9, 15.5, -7.6, 15.9, -3.8, 15.8, _
    -1.7, 15.7, -1.7, 15.7, -1.5, 15.9, -4.1, 16.2, -6#, 16.6, -8.7, _
    16.8, -12.4, 18#, -14.3, 19.4, -16#, 20.8, -17.9, 22.6, -16.8, 23.4, _
    -20.5, 25.4, -23.7, 27.5, -16.9, 27.2, -13.6, 26.4, -13.6, 27#, -8.6, _
    26.8, -5.2, 26.2, -2.3, 24.8, -0.2, 22.9, 2.1, 20.8, 3.8, 18.3, _
    4.2, 17.2, 5.7, 24.6, 6.8, 28.9, 8.1, 32.7, 8.7, 33.9, 8.7, 33.6, 9.5, _
    34#, 7.7, 30#, 6.4, 25.3, 5.5, 21.2, 5.1, 18.1, 4.8, 17.4, 6.6, 19.2, _
    9.2, 21.2, 11#, 21.4, 13.6, 22.4, 16.8, 22.4, 19.6, 21.8, 23#, 20.7, _
  28.5, 19.8, 23.3, 17.4, 23.8, 17.2, 19.6, 15.7, 20.1, 15.5, 14.1, 14#, _
 19.3, 11.6, 20.3, 10.4, 22.8, 9.3, 25.8, 7#, 27.7, 4.6, 29#, 1.4, 30.3, _
    -2#, 30.6, -4.5, 25.9, -3.4, 22.5, -2.5, 19.3, -1.8, 15.6, 0.4, 12.3, _
    3.4, 9.7, 5.7, 7.7, 9#, 7.6, 5.8, 8#, 3#, 9.2, -1.2, 10.4, -4.6, 10.6, _
    -7.8, 9.3, -10.7, 8.9, -9.9, 8.3, -14.1, 7.8, -16.9, 6.8, -19.2, 6.7, _
    -17.7, 4.8, -21.7, 3.9, -24.9, 2.2, -29.1, 0.1, -31.9, 0, -31.5)
    '*ポリラインデータ設定
    ReDim sngBas((UBound(varPly, 1) - 1) \ 2, 1)
    ReDim sngDat((UBound(varPly, 1) - 1) \ 2, 1)
    For Kp = LBound(varPly, 1) To UBound(varPly, 1) Step 2
        sngBas(Kp \ 2, 0) = CSng(varPly(Kp + 0)) * MAPLRATE
        sngBas(Kp \ 2, 1) = CSng(varPly(Kp + 1)) * MAPLRATE
    Next Kp '
    '
    For Jp = 0 To MAPLROWS - 1
        intDyp = MAPLTOPP + (MAPLHSPC) * Jp
        For Ip = 0 To MAPLCOLS - 1
            intDxp = MAPLLEFT + (MAPLVSPC) * Ip
             For Kp = LBound(sngBas, 1) To UBound(sngBas, 1)
                 sngDat(Kp, 0) = sngBas(Kp, 0) + intDxp
                 sngDat(Kp, 1) = sngBas(Kp, 1) + intDyp
             Next Kp
             With ActiveDocument.Shapes.AddPolyline(sngDat)
                .Fill.Visible = msoTrue
                '↓グラデーション
                .Fill.TwoColorGradient (Ip Mod 3) + 2, (Jp Mod 2) + 1
                .Fill.ForeColor = vbRed
                .Fill.BackColor = vbYellow
                .Line.Visible = msoTrue
                .Line.ForeColor = vbBlack        '←線色
                .Line.Weight = MAPLLNWE         '←線の太さ
            End With
        Next Ip
    Next Jp
End Sub
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら