Wie kriege ich math.Excel-Funktionen in VBMakros?
18.01.2005 18:29:09
André
Excel bietet eine Fuelle von Funktionen bis hin zu Rechnen mit komplexen Zahlen.
Wenn ich nun ein VB-Makro schreibe, verfuege ich nur noch ueber den eher duerftigen Basic-Funktionsvorrat, aus dem ich mir alles andere zusammenbasteln muss. Wie kann ich mir unter Visual Basic (das ja hier "innerhalb" von Excel verwendet wird) die Funktionsvielfalt von Excel zunutze machen?
Banales Beispiel: Excel bietet mit
=arccos(RAD)
den Arcuscosinus, hier beispielsweise aus der benannten Zelle "RAD".
Will ich innerhalb eines VB-Makros z.B. dasselbe (hier mit dem Double-Argument "RAD")erwirken,
muss ich das Rad sozusagen neu erfinden:
_______________________________
Function MyArccos#(RAD#)
MyArccos=ATN(-RAD/SQR(-RAD^2+1#))+2*ATN(1#)
End Function
______________________________
(kuerzehalber ohne Argumentenpruefung)
Nun kann man mit Bezugnahme auf Zellen, in denen das von Excel erledigt wird,
also (das Ganze sei hier z.B. in Zelle B17 versteckt) mit
__________________________
...
RAD$="B17"
...
Function MyArccos#(RAD$)
MyArccos#=Range(RAD).Value
End Function
__________________________
die Erfindung des Rads an Excel abkegeln. Aber:
Geht's auch anders, kann man die Excel-Funktionen als Bibliothek "irgendwie" einbinden oder als Verweis an den Projektbaum kleben? Denn spaetestens, wenn Excel eine komplexe Zahl als Ergebnis zurueckliefert, beispielsweise, muss ich erneut in die Klamottenkiste greifen, d.h., in Re(arg) und Im(arg) aufspalten, wenn ich mit VB weiterarbeiten will oder aber mir - schrecklich - einen eigenen Parser schreiben. Das muss doch eleganter gehen.
Danke fuers Lesen, herzliches Danke fuers Antworten.
Adieu de Andre.