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
グループ化されているので、作成後、角度を手動で変えられます。
.Rotation = 0