Mathematische VBA-Funktionen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Abseits der Grundrechenarten kommen mathematische Berechnungen sowohl immer wieder in VBA-Routinen zum Einsatz, wie auch in Abfragen auf Tabellenfelder. Einen überblick über das, was VBA uns zu diesem Thema anzubieten hat, zeigen wir im Folgenden – und ebenso, wie sich der Funktionsumfang durch die Excel-Bibliothek erweitern lässt.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1506_Mathe.accdb

Die Bibliothek Math von VBA

öffnen Sie den Objektkatalog des VBA-Editors und wählen links oben aus der Combobox den Eintrag VBA aus. Markieren Sie dann die Zeile Math in der Klassenauflistung links. Rechts werden Ihnen nun die Funktionen der Klasse angezeigt – siehe Bild 1.

Die VBA-Klasse Math im Objektkatalog

Bild 1: Die VBA-Klasse Math im Objektkatalog

Ziemlich überschaubar, was uns da geboten wird. Gerade mit zwölf Methoden werden wir beglückt. Wenn es um naturwissenschaftliche oder finanzielle Berechnungen geht, dann bleibt Ihnen nicht erspart, die komplexeren Funktionen selbst in Modulen nachzurüsten und zu programmieren.

Aber durchlaufen wir einmal das Vorhandene. Zunächst für die einfacheren Methoden…

Abs gibt den Absolutwert einer Zahl zurück. Das bedeutet nichts anderes, als dass eine negative Zahl in eine positive verwandelt wird. +13 und -13 haben beide den gleichen Absolutwert 13.

Sgn ist ähnlich, gibt aber lediglich das Vorzeichen der Zahl zurück. Allerdings nicht als String, sondern als Zahl. Jede Zahl größer als 0 ergibt eine 1, jede kleiner als 0 eine -1. Nur bei 0 ist auch der Rückgabewert eine 0. Round rundet eine Fließkommazahl auf eine wählbare Anzahl von Nachkommastellen:

  Round (2.4674)
> 2,47

Lassen Sie Vorsicht walten, wenn es um das Runden von Zahlen geht, besonders wenn es um Währungsberechungen handelt! Denn dort ist Runden nicht gleich Runden. Mathematisches Runden und kaufmännisches Runden etwa unterscheiden sich. Unterziehen Sie einmal die Zahl 2,465 einem VBA-Round. Als Ergebnis erhalten Sie 2,46! Die 5 am Ende wird also nicht aufgerundet. Für korrektes Runden benötigen Sie daher eine eigene Funktion, die etwa so aussähe:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar