オートシェイプを自分で自由に書ける!
Sub 波線作成テスト() Dim myShape As Shape Dim ffb As FreeformBuilder Dim r As Range Set r = Range("A3") Set ffb = Shapes.BuildFreeform(msoEditingAuto, r.Left, r.Top) Dim i As Integer For i = 1 To 3 Set r = r.Offset(-1, 1) ffb.AddNodes msoSegmentCurve, msoEditingAuto, r.Left, r.Top Set r = r.Offset(1, 1) ffb.AddNodes msoSegmentCurve, msoEditingAuto, r.Left, r.Top Next Set myShape = ffb.ConvertToShape '作成 With myShape.Line .DashStyle = msoLineSolid .Weight = 3 .ForeColor.RGB = rgbDarkRed End With End Sub
曲線はmsoSegmentCurve、直線はmsoSegmentLineに書き換える。
ffb.AddNodes msoSegmentLine, msoEditingAuto, r.Left, r.Top
開始地点と終了地点を結ぶと、普通のオートシェイプの様に塗りつぶしなど自由自在。
直線と曲線の混在も可能。扇型を4つ作って重ねてみた。三角関数!
Excel標準のオートシェイプでも扇型は作れるけど、上記の様には作れないはず。
以上。