Die folgenden Beispiele stammen von Bernd Herrmann (veröffentlicht mit freundlicher Genehmigung des Autors):
Mit Hilfe einer VBA-Routine ist es möglich, geometrische Formen zu erstellen:
Diese Routine zeichnet ein Polygon:
Sub polygon()
Application.ScreenUpdating = False
anzeck = InputBox("Wieviele Ecken ?")
If anzeck = Empty Or Not IsNumeric(anzeck) Or anzeck < 3 Then Exit Sub
seite = InputBox("Seitenlänge ?")
If seite = Empty Or Not IsNumeric(seite) Then Exit Sub
a = 200
ActiveSheet.Drawings.Add(a, a, a + seite, a, False).Select
winkel = 180 - 360 / anzeck
gegenwinkel = 180 - (winkel + 90)
winkel1 = 3.14159265358979 * winkel / 180
gegenwinkel1 = 3.14159265358979 * gegenwinkel / 180
x = a + seite
y = a
k = 1
For i = 1 To anzeck - 1
x = x - k * seite * Sin(gegenwinkel1)
y = y + k * seite * Cos(gegenwinkel1)
Selection.AddVertex x, y
k = k * (-1)
gegenwinkel1 = gegenwinkel1 - winkel1
Next
Application.ScreenUpdating = True
End Sub
Und diese Routine zeichnet einen Kreisbogen mit angegebenem Winkel:
Sub kreisbogen()
Application.ScreenUpdating = False
winkel = InputBox("Winkel ?")
If winkel = Empty Or Not IsNumeric(winkel) Then Exit Sub
ActiveSheet.Drawings.Add(100, 100, 100, 100, False).Select
For i = 0 To winkel
k = 3.14159265358979 * i / 180
Selection.AddVertex 100 + 100 * Sin(k), 100 + 100 * Cos(k)
i = i + 1
Next
Selection.AddVertex 100, 100
Application.ScreenUpdating = True
End Sub