Freigeben über


Aufrufen von Unter- und Funktionsprozeduren

Zum Aufrufen einer Sub-Prozedur aus einer anderen Prozedur geben Sie den Namen der Prozedur und die Werte für alle erforderlichen Argumente ein. Die Anweisung Aufrufen ist nicht erforderlich, aber wenn Sie sie verwenden, müssen Sie alle Argumente in Klammern einschließen.

Sie können eine Sub-Prozedur verwenden, um andere Prozeduren zu organisieren, sodass diese einfacher zu verstehen und zu debuggen sind. Im folgenden Beispiel ruft die Sub-Prozedur Main die Sub-Prozedur MultiBeep auf, indem der Wert 56 für das Argument übergeben wird.

Wenn MultiBeep ausgeführt wird, wird die Steuerung an Main zurückgegeben und Main ruft die Sub-Prozedur Message auf. Message zeigt ein Meldungsfeld an. Wenn der Benutzer auf OK klickt, wird die Steuerung an Main zurückgegeben und Main wird beendet.

Sub Main() 
    MultiBeep 56 
    Message 
End Sub 
 
Sub MultiBeep(numbeeps) 
    For counter = 1 To numbeeps 
        Beep 
    Next counter 
End Sub 
 
Sub Message() 
    MsgBox "Time to take a break!" 
End Sub

Hinweis

Haben Sie Interesse an der Entwicklung von Lösungen, mit denen die Funktionen von Office über mehrere Plattformen erweitert werden können? Schauen Sie sich das neue Office-Add-In-Modell an. Office-Add-Ins haben im Vergleich zu VSTO-Add-Ins und -Lösungen einen geringen Platzbedarf. Sie können sie mit fast jeder Web-Programmiertechnologie erstellen, z. B. HTML5, JavaScript, CSS3 und XML.

Aufrufen von Unterprozeduren mit mehr als einem Argument

Im folgende Beispiel werden zwei Methoden zum Aufrufen einer Sub-Prozedur mit mehr als einem Argument dargestellt. Beim zweiten Aufruf müssen die Argumente in Klammern eingeschlossen werden, da die Anweisung Aufrufen verwendet wird.

Sub Main() 
    HouseCalc 99800, 43100 
    Call HouseCalc(380950, 49500) 
End Sub 
 
Sub HouseCalc(price As Single, wage As Single) 
    If 2.5 * wage <= 0.8 * price Then 
        MsgBox "You cannot afford this house." 
    Else 
        MsgBox "This house is affordable." 
    End If 
End Sub

Verwenden von Klammern beim Aufruf von Funktionsprozeduren

Wenn Sie den Rückgabewert einer Funktion verwenden möchten, weisen Sie die Funktion einer Variablen zu und setzen Sie die Argumente in Klammern, wie im folgenden Beispiel gezeigt.

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3") 

Wenn Sie den Rückgabewert einer Funktion nicht verwenden möchten, können Sie eine Funktion auf die gleiche Weise aufrufen wie eine Sub-Prozedur. Lassen Sie die Klammern weg, listen Sie die Argumente auf und weisen Sie die Funktion keiner Variablen zu, wie im folgenden Beispiel gezeigt.

MsgBox "Task Completed!", 0, "Task Box" 

Wenn Sie im vorangehenden Beispiel Klammern verwenden, löst die Anweisung einen Syntaxfehler aus.

Übergeben von benannten Argumenten

Eine Anweisung in einer Sub- oder Function-Prozedur kann Werte an aufgerufene Prozeduren mithilfe von benannten Argumenten übergeben. Sie können benannte Argumente in beliebiger Reihenfolge auflisten. Ein benanntes Argument besteht aus dem Namen des Arguments gefolgt von einem Doppelpunkt und einem Gleichheitszeichen (: =) und dem Wert, der dem Argument zugewiesen wurde.

Das folgende Beispiel ruft die MsgBox-Funktion mithilfe von benannten Argumenten ohne Rückgabewert auf.

MsgBox Title:="Task Box", Prompt:="Task Completed!" 

Das folgende Beispiel ruft die MsgBox-Funktion mithilfe von benannten Argumenten auf. Der Rückgabewert wird der Variablen zugewiesen.

answer3 = MsgBox(Title:="Question 3", _ 
Prompt:="Are you happy with your salary?", Buttons:=4) 

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.