Diese Frage wurde gefragt , vor , aber jedes Mal , wenn die akzeptierte Antwort ist einfach ein Rücktritt Funktionsbeschreibungen zur Verfügung zu stellen mit Application.MacroOptions
( VBA6 ) ( VBA7 ), aber diese Informationen nicht tatsächlich als Tooltip angezeigt, so dass es nicht mein Problem lösen.
Das Ziel
Was wir alle wünschen, ist, in der Lage zu sein, benutzerdefinierte Funktionen mit allen Mitteln (VBA-, VSTO- oder COM-Add-In) zu definieren und dem Benutzer den Vorteil einer Popup- / Tooltip-Beschreibung der Funktion und ihrer Parameter zu geben wird für jede integrierte Excel-Funktion entweder inline oder in der Formelleiste angezeigt:
Die allgemein akzeptierte Antwort auf dieses Bedürfnis ist, dass es für benutzerdefinierte Funktionen nicht möglich ist, aber ich möchte diesen Glauben in Frage stellen.
Das Problem
Derzeit ist es das Beste, was ich je gesehen habe, Funktionen zu definieren (häufig mit dem obigen MacroOptions-Aufruf), sodass beim Aufrufen des Funktionsdialogs (der Schaltfläche fx in der Formelleiste) die Funktions- und Parameterbeschreibungen wie folgt angezeigt werden:
Wie Sie sehen können, ist dies eine komplizierte Funktion mit vielen Parametern. Wenn der Benutzer diesen Dialog "Funktionsargumente" und dessen Aufforderung nicht kennt und stattdessen nur mit dem Standard-Tooltip von Excel vertraut ist, wird nur der Formelname und keine zusätzliche Hilfe angezeigt:
Damit haben sie keine Chance, die erforderlichen Parameter korrekt anzugeben. (Ohne die Dokumentation zu lesen, was natürlich kein Benutzer jemals tut.)
Jetzt weiß ein Power-User möglicherweise, dass er durch Eingabe von Ctrl+ Shift+ Aeine automatisch vervollständigte Liste von Funktionsparametern erhält, wie folgt:
Aber natürlich haben wir das gleiche Problem wie oben: Standard-Excel-Benutzer werden nur vom ersten Bild an an das Standardverhalten gewöhnt und haben diese Funktion wahrscheinlich nie gelernt.
An diesem Punkt sollte klar sein, warum dies nicht ausreicht, und wir möchten, was jede eingebaute Funktion hat - den Inline-Tooltipp, der dem Benutzer die Verwendung der Funktion erklärt.
Der Tease
Zuerst war ich vielleicht davon überzeugt, dass dies nur mit den nativen Excel-Anwendungsfunktionen möglich ist. Add-Ins und VBA sind Erweiterungsfunktionen, und dieser Tooltipp ist möglicherweise einfach nicht erweiterbar. Diese Theorie wird jedoch durch die Existenz des Analysis Toolpak-Add-Ins in Frage gestellt. Sicher, es ist in Microsoft integriert, aber ANALYS32.xll ist ein eigenständiges XLL-Add-In, genau wie diejenigen, die in VB, C, C ++ und C # erstellt werden können. Sicher genug, wenn diese XLL in die Anwendung geladen wird, haben die Funktionen , die sie zur Verfügung stellt, die gleichen Tooltipps für native Excel-Funktionen:
Wenn diese Informationen in dieser XLL-Datei verschlüsselt und an Excel weitergegeben werden, gibt es sicherlich eine Möglichkeit, sie mit unseren eigenen Add-Ins zu replizieren. Ich bin jetzt an dem Punkt angelangt, an dem ich anfangen werde, mir ein wenig über das Dekompilieren beizubringen und zu prüfen, ob ich alles, was im Analyse-Toolpak vor sich geht, rückentwickeln kann.
Wie kannst du helfen
Ich bin mir fast sicher, dass ich alle öffentlich verfügbaren Informationen zu diesem Problem recherchiert habe. Wenn jemand etwas weiß, von dem ich nicht weiß, dass es dabei helfen könnte, können Sie sich gerne einschalten. Ich bin mit Reverse Engineering kompilierter DLLs / XLS sehr vertraut. Wenn also jemand Lust hat, seine lokale Kopie von Analysis32.xll und zu öffnen Wenn ich herausfinden würde, was mit den benutzerdefinierten Funktionsdefinitionen los ist, wäre ich sehr dankbar. Ansonsten werde ich mich einfach weiter damit beschäftigen, bis ich alle Sackgassen erreicht habe und zurückmelden, was ich finde.