Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
548to552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
548to552
548to552
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wie kriege ich math.Excel-Funktionen in VBMakros?

Wie kriege ich math.Excel-Funktionen in VBMakros?
18.01.2005 18:29:09
André
Salut,
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.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie kriege ich math.Excel-Funktionen in VBMakros?
18.01.2005 18:41:17
boris
Hallo,
WorksheetFunction.Acos (5)
oder so ähnlich. Oder geht das in Excel8 nicht?
Gruß
Boris
AW: Wie kriege ich math.Excel-Funktionen in VBMakros?
20.01.2005 19:50:29
André
@boris:
Hallo, Boris
Danke fuer die rapide Auskunft.
Ich habe nachgesehen.
(Formula ist in meiner Installation keine Klassenproperty von
Worksheet, sondern von Range, aber das ist egal).
Die VB-Syntax lautet dann - wir bleiben mal bei benannten Zellen -
Range(FKT).Formula = "=ACOS(ARG)"

Damit ist der Zelle FKT eine Formel zugewiesen und diese kann dann
mit MyArccos=Range(FKT).Value weiterverarbeitet werden. Das ist in etwa das, was ich durch explizite Zellbelegung mit einer Excel-Formel schon bis dato hatte.
Was mir vorschwebte, war, ohne die Zelle mit dem Funktionsaufruf,
also statt:
a) Zelle ARG mit dem Funktions-Argument
b) Zelle FKT mit dem Excel-Funktionsaufruf
c) Zelle MyArccos mit dem VB-Makroergebnis, basierend auf b)
bloss mit
a) Zelle ARG mit dem Argument
b) Zelle MyArccos mit dem VB-Makroergebnis, das zwar Excel-Funktionen, aber ohne Zellenbezug, sondern mit Argumentübergabe verwendet.
auszukommen.
Ich gebe zu, das arccos-Beispiel ist etwas zu einfach.
Ich denke, mein Ziel liesse sich nur erreichen, wenn ich in meiner Klasse die
Formula-Methoden ohne Zellbezug implementieren koennte, also so
etwas wie ein abstraktes Interface haette.
Kurz gesagt: Excel-Funktionen ja, Zellen nein. Aber na ja, koennte, haette.
Trotzdem danke. Es geht ja auch so, solange mir die Zellen mit den Zwischenergebnissen nicht verbaselt werden und das Wichtigste sind die vielen vielen Excel Fkts.
Adieu de André
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige