Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Ein VBA-Programm in Excel
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.1.3 Unterprogrammtechnik<br />
Um den <strong>Programm</strong>code <strong>in</strong> kle<strong>in</strong>e unabhängige und überschaubare <strong>E<strong>in</strong></strong>heiten<br />
zu unterteilen, stehen <strong>in</strong> <strong>VBA</strong> zwei Varianten zur Verfügung –<br />
Prozeduren und Funktionen.<br />
Prozeduren beg<strong>in</strong>nen, wie im vorherigen Beispiel e<strong>in</strong>es Makros zu sehen,<br />
immer mit Sub, gefolgt von dem Prozedurnamen, und enden immer<br />
mit End Sub.<br />
Sub Prozedurname [(Argumente)]<br />
Anweisung<br />
...<br />
Anweisung<br />
End Sub<br />
Die (optionalen) Argumente können Referenzen (nicht der Wert selber<br />
wird übergeben, sondern der Zeiger, also die Adresse im Arbeitsspeicher)<br />
oder Werte se<strong>in</strong>. Zudem kann ihnen der Datentyp mitgegeben<br />
werden.<br />
Beispiel:<br />
Sub TestProzedur (ByRef Argument1 As Integer, ByVal Argument2 As Long)<br />
Zeiger = Argument1<br />
Wert = Argument2<br />
End Sub<br />
Der Aufruf dieser Prozedur sieht dann entweder so aus:<br />
TestProzedur Parameter1, Parameter2 oder so:<br />
Call TestProzedur(Parameter1, Parameter2)<br />
Prozeduren können Aktionen unterschiedlicher Art ausführen, sie können<br />
aber ke<strong>in</strong>e Werte zurückgeben. Hierzu bedarf es e<strong>in</strong>er Funktion.<br />
Die Syntax e<strong>in</strong>er Funktion ist ähnlich wie bei e<strong>in</strong>er Sub: sie beg<strong>in</strong>nen<br />
mit Function und enden mit End Function:<br />
[Public] [Private] [Static] Function Funktionsname [(Argumente)] [As<br />
Typ]<br />
Anweisung<br />
...<br />
Anweisung<br />
End Function<br />
2.1.4 Objekte, Eigenschaften und Methoden<br />
An dieser Stelle möchte ich die Gelegenheit nutzen, herauszustellen,<br />
warum <strong>VBA</strong> für viele Anwendungen e<strong>in</strong>e gute Alternative zu den etab-<br />
10