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

VBA – Suchen und Ersetzen in Strings

Das Suchen und Ersetzen in String ist in VBA (Excel & Co) erwartungsgemäß ganz einfach und mit der folgenden Zeile Quelltext erledigt:

Dim textZumErsetzen, neuerText as String
textZumErsetzen = "1456,32"
neuerText = replace(textZumErsetzen, ",",".")
' Neuer Wert: "1456.32"

VBA – Selektion Speichern und wieder aufrufen

Manchmal schreibt man Informationen in eine Tabelle oder führt interaktiv Änderungen an den Daten aus. Dabei ändert sich oft der Fokus der Tabelle.
Damit der Benutzer jedoch nicht ständig wieder an seine Position scrollen und klicken muss, gibt es einfach die Möglichkeit, den aktiven Focus in Excel zwischen zu speichern und wieder abzurufen:

    ' Speichern der aktuellen Selektion
    Dim selectionValue As Variant
    selectionValue = Selection.Address

    ' Do Anythin - Tu was Du tun musst ;-)

    ' Zurücksetzen auf alte Selektion
     Range(selectionValue).Select

VBA – Zeilenumbruch in String einbauen

Manchmal schreibt man einen Header für eine Tabelle, wo die Spalten möglichst schmal sein müssen. Dafür ist es von Vorteil, wenn in dem Header Wörter untereinander stehen. Das lässt sich ganz einfach umsetzen:

dim ueberschrift as String
ueberschrift = "PAL " & vbCrLf & " Anzahl"

Zeilenumbruch in Excel über Formel einbauen

Einen Zeilenumbruch innerhalb einer Excelformel lässt sich einfach einrichten

ZEICHEN(10)