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
A dampened sine wave of stars

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.