【Word VBA】ベジェ曲線によるたまご描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
Public Sub ベジェ曲線によるたまご描画マクロ()
    Const EGGLEFT = 60            'たまご描画開始位置X
    Const EGGTOPP = 80           '                           Y
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer
    Dim sngBzBs(9, 1) As Single, sngBzWk(9, 1) As Single
    '
    '*たまごのベジェ曲線ベースデータ
    sngBzBs(0, 0) = 50: sngBzBs(0, 1) = 0
    sngBzBs(1, 0) = 40: sngBzBs(1, 1) = 0
    sngBzBs(2, 0) = 5: sngBzBs(2, 1) = 40
    sngBzBs(3, 0) = 30: sngBzBs(3, 1) = 72
    sngBzBs(4, 0) = 40: sngBzBs(4, 1) = 83
    sngBzBs(5, 0) = 60: sngBzBs(5, 1) = 83
    sngBzBs(6, 0) = 70: sngBzBs(6, 1) = 72
    sngBzBs(7, 0) = 95: sngBzBs(7, 1) = 40
    sngBzBs(8, 0) = 60: sngBzBs(8, 1) = 0
    sngBzBs(9, 0) = 50: sngBzBs(9, 1) = 0
    '
    '*たまご描画
    For Jp = 0 To 4
        For Ip = LBound(sngBzBs, 1) To UBound(sngBzBs, 1)
            sngBzWk(Ip, 0) = (sngBzBs(Ip, 0)*0.8^ Jp)+EGGLEFT+70 * Jp
            sngBzWk(Ip, 1) = (sngBzBs(Ip, 1)*0.8^ Jp)+EGGTOPP
        Next Ip
        '*ベジェ曲線描画
        With ActiveDocument.Shapes.AddCurve(sngBzWk)
            .Line.ForeColor.RGB = vbBlack        '←線色
            .Line.Weight = 1                            '←線の太さ
            .Fill.PresetGradient 1, 2, 16            '←塗りつぶしグラデーション
        End With
    Next Jp
End Sub

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