Subroutine am Beispiel Quadrat ◦ Zusammenfassung ◦ ?

Dieses Thema übersetzt das entwurfssprachliche Unterprogramm QuadratFesterLänge in eine gleichnamige VBA-Subroutine. Eine Subroutine fasst mehrere programmiersprachliche Anweisungen unter einem Namen zusammen. Der entwurfssprachlichen Anweisung

>     Zeichne die Gerade(100,100, 200,200):

> entspricht die VBA-Anweisung ...

>     Dialogblatt.Shapes.AddLine(100,100, 200,100).Visible = True

Die VBA-Anweisung besteht aus den folgenden Elementen:

- Dialogblatt ist das Tabellenblatt, auf dem das Quadrat gezeichnet wird

- .Shapes.AddLine(100,100, 200,100) wählt unter den möglichen Grafikobjekten (engl. shapes) eine Gerade zwischen den Punkten (100,100) und (200,100)

- .Visible = True macht die Gerade sofort sichtbar.

Die Zeilen Sub QuadratFesterLänge() und End Sub fassen vier solche Geradenanweisungen zu einer Subroutine zusammen. With und End With verhindern, dass Dialogblatt.Shapes dreimal geschrieben werden muss. Sie finden den Code dieser Subroutine als Lösung der Aufgabe A in der Arbeitsmappe QuadratProgrammiert.xls (»Alt/11, Ctrl/R und Doppelklick auf 'ModulQuadrat'):

>     Sub QuadratFesterLänge()
>       With Dialogblatt.Shapes
>         .AddLine(100,100, 200,100).Visible = True
>         .AddLine(200,100, 200,200).Visible = True
>         .AddLine(200,200, 100,200).Visible = True
>         .AddLine(100,200, 100,100).Visible = True
>       End With
>     End Sub

Die Verwendung einer Subroutine bringt die folgenden Vorteile:

- Künftig brauchen wir statt der vier Geradenanweisungen nur noch QuadratFesterLänge zu schreiben, wenn wir ein Quadrat zeichnen wollen. Dies ist nicht nur kürzer, sondern auch leserlicher.

- Die Subroutine steht unter dem Namen QuadratFesterLänge() auch anderen Programmierern zur Verfügung.

Die leere Klammer nach dem Namen der Subroutine muss stehen, hat aber in unserem Beispiel keine Bedeutung. Die Klammern nehmen allfällige Argumente auf. QuadratFesterLänge() ist nämlich unflexibel, weil immer an der gleichen Position ein Quadrat der gleichen Länge gezeichnet wird. Diesen Mangel können Argumente beheben, die beim Aufruf der Subroutine übergeben werden. Sinnvolle Argumente wären in unserem Beispiel die Position und Länge des zu zeichnenden Quadrats. Das Hilfethema Argumente zeigt, wie Sie Unterprogramme mit Argumenten definieren.

Eine Subroutine ist ein Unterprogramm, das aus formal und inhaltlich zusammengehörenden Anweisungen besteht, die sich unter einem Namen aufrufen lassen. Eine zweite Klasse von Unterprogrammen heisst Funktion. Die Entwicklung eines Programms aus verschiedenen Unterprogrammen ist nur dann effizient, wenn eine komfortable Entwicklungsumgebung die Erstellung und den Test von Unterprogrammen unterstützt.

Übung Hexagon