PowerPointでVBAを使う(3) 波線を描く

はじめに

波線を描く簡単な方法が見つからなかったのでVBAで描いてみました。

結果

コード内の「wave_width」を40に固定して「r」値をいろいろ変更してみた結果をのせておきます。
f:id:touch-sp:20201202211133p:plain:w360

VBAコード

Sub カーブ()

'====================各自で設定====================
Const n_point = 28      '頂点の数×3-2
Const wave_width = 40
Const r = 30
'====================各自で設定====================


Dim pts(1 To n_point, 1 To 2) As Single

'始点
pts(1, 1) = 0
pts(1, 2) = wave_width + wave_width * ((-1) ^ 1)

'中継点
For i = 4 To n_point - 3 Step 3
    pts(i, 1) = wave_width * 2 * (i \ 3)
    pts(i, 2) = wave_width + wave_width * ((-1) ^ (i Mod 2))
Next i

'終点
pts(n_point, 1) = wave_width * 2 * (n_point \ 3)
pts(n_point, 2) = wave_width + wave_width * ((-1) ^ (n_point Mod 2))


pts(2, 1) = pts(1, 1) + r
pts(2, 2) = pts(1, 2)

For i = 3 To n_point - 4 Step 3
    pts(i, 1) = pts(i + 1, 1) - r
    pts(i, 2) = pts(i + 1, 2)
    pts(i + 2, 1) = pts(i + 1, 1) + r
    pts(i + 2, 2) = pts(i + 1, 2)
Next i

pts(n_point - 1, 1) = pts(n_point, 1) - r
pts(n_point - 1, 2) = pts(n_point, 2)

ActivePresentation.Slides(1).Shapes.AddCurve SafeArrayOfPoints:=pts

End Sub

動作環境

以下の環境で作成しています。

Windows 10
Office Home and Business 2019

このエントリーをはてなブックマークに追加