Sie wissen bereits, dass Sie in Ihren Makros Unterprogramme verwenden können. Mit VBA können Sie auch Funktionen definieren, die in Ihren Makros verwendet werden können. Der Unterschied zwischen Funktionen und Unterprogrammen besteht darin, dass Funktionen Werte zurückgeben können, während Unterprogramme dies nicht können. Betrachten Sie das folgende Makro:

Sub Macro1()

TooMany = TestFunc     If TooMany Then MsgBox "Too many columns selected"

End Sub
Function TestFunc()

TestFunc = False     If Selection.Columns.Count > 10 Then        TestFunc = True     End If End Function

Das Makro (Macro1) ruft die TestFunc-Funktion auf. Diese Funktion gibt je nach durchgeführtem Test entweder den Wert False oder True zurück. Macro1 reagiert dann auf den zurückgegebenen Wert. Beachten Sie, dass der Funktionsname auf der rechten Seite eines Gleichheitszeichens angezeigt werden kann. Dies macht Funktionen sehr leistungsfähig und ein wichtiger Bestandteil jedes Programms. Innerhalb der Funktion wird das Ergebnis TestFunc zugewiesen, dem Namen der Funktion selbst. Dies ist der von der Funktion zurückgegebene Wert.

Wie bei Unterprogrammen können Sie auch Parameter an Ihre Funktionen übergeben.

Dies wird im folgenden Makro veranschaulicht:

Sub Macro1()

A = 12.3456     MsgBox A & vbCrLf & RoundIt(A)

End Sub
Function RoundIt(X) As Integer     RoundIt = Int(X + 0.5)

End Function

Dieses einfache Makro (Macro1) definiert eine Nummer und verwendet dann ein Meldungsfeld, um sie und das Ergebnis der Übergabe der Nummer an die RoundIt-Funktion anzuzeigen. Die Ausgabe ist 12.3456 und 12. Beachten Sie, dass der Parameter in Klammern an die Funktion übergeben werden sollte. Beachten Sie auch, dass die Funktion nicht denselben Variablennamen verwendet, den sie übergeben hat. Dies liegt daran, dass VBA den Wert von X (was die Funktion benötigt) neu zuweist, damit er mit dem Wert von A übereinstimmt (was das Programm an die Funktion übergibt).

Bei der Übergabe von Parametern an Funktionen ist zu beachten, dass Ihr Programm die gleiche Anzahl von Parametern übergeben muss, die die Funktion erwartet, und dass die Parameter vom übereinstimmenden Typ und in der richtigen Reihenfolge sein müssen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11765) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: