VBA – Objekte in Funktion zurückgeben

Funktionen geben in VBA immer einen Wert zurück. Soll dieser Wert ein Objekt sein, so muss man wissen, wie man ein Objekt in einer Funktion zurückgibt.

Die Vorgehensweise ist identisch mit der Zuweisung einer Objekt-Variable. Zum Vergleich zuerst das Vorgehen bei normalen Datentypen:

Function addiere(a as Integer, b as Integer) as Integer
     addiere = a + b
End Function

Bei Objekten muss vor der Angabe des Funktionsname einfach ein “SET” gesetzt werden:

Function getAuto() as Object
      dim myAuto as Auto
      set myAuto = new Auto
      myAuto.farbe = "blau"
      myAuto.kennzeichen = "L-RB 2245"
' Zurückgeben des Wertes
      SET getAuto = myAuti
End Function

Andernfalls bringt er die nachfolgende Fehlermeldung:

Fehler: Objektvariable oder With-Blockvariable nicht festgelegt
Fehler: Objektvariable oder With-Blockvariable nicht festgelegt