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 ...

Start Free Trial

No credit card required