Examples
To illustrate the use of AutoShapes, the code in Example B-3 inserts a dampened sine curve of small stars in the drawing layer. The output from this code is shown in Figure B-7.
Example B-3. The DrawSine2 Subroutine
Sub DrawSine2() ' Dampened sine wave of small stars Const pi = 3.1416 Dim i As Integer Dim x As Single, y As Single Dim rng As Range ' For starting point Dim n As Single ' Cycle length in inches Dim k As Integer ' k stars Dim ScaleY As Single ' Vertical scaling Dim sSize As Single ' Star size Dim sDamp1 As Single ' Dampening factor Dim sDamp2 As Single ' Dampening factor Dim cCycles As Integer ' Number of cycles Dim sh As Shape cCycles = 3 sDamp1 = 1 sDamp2 = 0.2 n = 2 k = 20 ScaleY = 0.5 sSize = InchesToPoints(0.1) ' Start at insertion point Set rng = Selection.Range ' Loop for first curve with phase shift For i = 1 To cCycles * k x = n * i / k y = ScaleY * Sin((2 * pi * i) / k + n) * _ (sDamp1 / (x + sDamp2)) y = InchesToPoints(y) x = InchesToPoints(x) Set sh = ActiveDocument.Shapes.AddShape _ (msoShape5pointStar, x, y, sSize, sSize, rng) sh.Fill.ForeColor.RGB = RGB(192, 192, 192) ' 25% gray sh.Fill.Visible = msoTrue Next i End Sub
Figure B-7. A dampened sine wave of stars
The code in Example B-4 produces a random series of stars, each containing a single letter that together spells a name. Note that each time the program is run, the pattern is different. One output ...
Get Writing Word Macros, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.