【Word VBA】斜め45度に並ぶ矢印描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
Public Sub 斜め45度に並ぶ矢印描画マクロ()
    Const STARXPOS = 100                    '起点位置 X
    Const STARYPOS = 250                    '               Y
    Const ARRWDIRE = 45                     '矢印の方向(角度)
    Const ARRWCONT = 10                   '矢印の数
    Const ARRWPITC = 25                     '矢印のピッチ
    Const ARRWWIDT = 15                   '矢印の幅
    Const ARRWHEIG = 25                    '矢印の高さ
    Const ARRBAPHT = 0.5                   '矢印の高さに対する棒の太さ比率
    Const ARRHDPHT = 0.5                   '矢印の高さに対する頭の部分比率
   '---------------------------------------------------------------------------
    Dim Ip As Integer, intAng As Integer
    Dim intXp As Integer, intYp As Integer, dblDir As Double
    Dim varName(0 To ARRWCONT - 1) As Variant
   '
    dblDir = ((4 * Atn(1)) / 180) * (ARRWDIRE * -1)
    For Ip = 0 To ARRWCONT - 1
        intXp = STARXPOS + (ARRWPITC * Ip) * Cos(dblDir)
        intYp = STARYPOS + (ARRWPITC * Ip) * Sin(dblDir)
        With ActiveDocument.Shapes.AddShape( _
         msoShapeNotchedRightArrow, _
          intXp - ARRWWIDT \ 2, intYp - ARRWHEIG \ 2, _
                                   ARRWWIDT, ARRWHEIG)
               .Fill.ForeColor.RGB = vbYellow        '←塗りつぶし色
               .Fill.Visible = True
               .Line.ForeColor.RGB = vbBlue         '←線色
               .Line.Visible = True
               .Adjustments(1) = ARRBAPHT
               .Adjustments(2) = ARRHDPHT
               .Rotation = ARRWDIRE * -1
               '
               varName(Ip) = .Name
         End With
    Next Ip
    ActiveDocument.Shapes.Range(varName).Group         '←グループ化
End Sub

HC220404B.png

HC220404C.png

 グループ化されているので、作成後、角度を手動で変えられます。

HC220404D.png

               .Rotation = 0


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら