【Word VBA】丸く並ぶ矢印描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
Public Sub 丸く並ぶ矢印描画マクロ()
    Const CIRCXPOS = 200          '円の中心位置 X
    Const CIRCYPOS = 180        '               Y
    Const CIRCRADI = 100          '円の半径
    Const ARRWCONT = 12         '矢印の数
    Const ARRWWIDT = 30         '矢印の幅
    Const ARRWHEIG = 25                      '矢印の高さ
    Const ARRBAPHT = 0.4                    '矢印の高さに対する棒の太さ比率
    Const ARRHDPHT = 0.3                    '矢印の高さに対する頭の部分比率
   '---------------------------------------------------------------------------
    Dim Ip As Integer, intAng As Integer
    Dim intXp As Integer, intYp As Integer, dblRd As Double
    '
    dblRd = (4 * Atn(1)) / 180
    intAng = 360 \ ARRWCONT
    For Ip = 0 To ARRWCONT - 1
        intXp = CIRCRADI * Cos(dblRd * (intAng * Ip)) + CIRCXPOS
        intYp = CIRCRADI * Sin(dblRd * (intAng * Ip)) + CIRCYPOS
'
        With ActiveDocument.Shapes.AddShape(msoShapeRightArrow, _
                           intXp - ARRWWIDT \ 2, intYp - ARRWHEIG \ 2, _
                                   ARRWWIDT, ARRWHEIG)
               .Fill.ForeColor.RGB = RGB(0, 255, 0)        '←塗りつぶし色
               .Fill.Visible = True
               .Line.ForeColor.RGB = RGB(0, 0, 255)       '←線色
               .Line.Visible = True
               .Adjustments(1) = ARRBAPHT
               .Adjustments(2) = ARRHDPHT
               .Rotation = intAng * Ip + 90
         End With
'
    Next Ip
'
End Sub

HC220315I.png

   Const ARRWCONT = 6       '矢印の数

HC220315J.png

    Const ARRWCONT = 18       '矢印の数


HC220315K.png

      With ActiveDocument.Shapes.AddShape(msoShapeLeftArrow, _


HC220315L.png

    .Rotation = intAng * Ip + 0

HC220315M.png

   .Rotation = intAng * Ip + 180

HC220315N.png

   Const ARRBAPHT = 0.1      '矢印の高さに対する棒の太さ比率


HC220315O.png

Const ARRHDPHT = 0.8                      '矢印の高さに対する頭の部分比率
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら