VBA – Programmierung mit Excel Grundlagen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Unterprogrammtechnik<br />
6 Unterprogrammtechnik<br />
<strong>VBA</strong>, als eine prozedurale Programmiersprache, zeichnet sich dadurch aus, daß der<br />
Programmcode in kleine, unabhängige Einheiten unterteilt ist. Diese Einheiten können sich<br />
gegenseitig aufrufen und Parameter übergeben. Ist die Formulierung der Einheiten allgemein<br />
genug, können sie immer wieder in unterschiedlichen Programmen benutzt werden.<br />
Es gibt im <strong>VBA</strong> zwei Syntaxvarianten für solche Einheiten <strong>–</strong> Prozeduren und Funktionen<br />
6.1 Prozeduren<br />
Wie schon weiter oben im Text beschrieben, beginnt eine Prozedur (auch UNTERPROGRAMM<br />
genannt) <strong>mit</strong> der Anweisung SUB und einem Namen aus max. 255 Zeichen. Dem Namen<br />
folgt eine in runde Klammern gesetzte optionale Argumentenliste. Die Prozedur besteht aus<br />
zwei Teilen:<br />
dem Deklarationsteil (auch Prozedurkopf genant)<br />
dem Programmteil (Programmcode)<br />
Den Abschluß bildet die END SUB <strong>–</strong> Anweisung:<br />
Sub Prozedurname [(Argumentenliste)]<br />
Anweisungen<br />
[Exit Sub]<br />
.<br />
Anweisungen<br />
End Sub<br />
Prozeduren können Aktionen unterschiedlicher Art durchführen, sie können jedoch keine<br />
Werte zurückgeben (siehe dazu Funktionen weiter im Text).<br />
Die ARGUMENTENLISTE (optional) besteht aus Deklarationen von Variablen (durch Kommata<br />
getrennt). Die Argumente dieser Liste werden FORMALE ARGUMENTE (formale Parameter)<br />
genannt.<br />
6.1.1 Aufruf und Parameterübergabe<br />
Sollen beim Aufruf einer Prozedur Parameter übergeben werden, so geschieht die Definition<br />
der Argumentenliste in der folgenden Form:<br />
[ByVal] Variable1[()] [As Typ] [, [ByVal] Variable2[()] [As Typ]]...<br />
Für die Prozedur Testlauf1 werden zwei formale Parameter WERT1 und WERT2 definiert:<br />
Sub Testlauf1 (Wert1 As String, Wert2 As Long)<br />
Ort = Wert2 & " " & Wert1<br />
MsgBox Ort<br />
End Sub<br />
Die Prozedur wird von einer anderen Prozedur aus aufgerufen, wobei beim Aufruf zwei<br />
AKTUELLE PARAMETER (auch aktuelle Argumente genannt) angegeben werden müssen. Dies<br />
geschieht in der allgemeinen Form:<br />
Prozedurname [Argumentenliste]<br />
PROZEDURNAME ist der Name der aufzurufenden Prozedur. Benötigt diese keine Argumente,<br />
spricht man von einer UNECHTEN PROZEDUR.<br />
Für das obige Beispiel könnte der Aufruf lauten:<br />
Sub Aufruf()<br />
Testlauf1 "Hagen", 58084<br />
End Sub<br />
Seite 53