Этот вопрос задавали раньше, но каждый раз, когда принятый ответ - это просто отставка для описания функций с использованием Application.MacroOptions
(VBA6) (VBA7), но эта информация фактически не отображается как всплывающая подсказка, поэтому она не решает мою проблему,
Цель
Все, что мы все хотим, - это определить пользовательские функции любыми способами (VBA, VSTO или COM-надстройку) и дать пользователю преимущество всплывающего/подсказки описания функции и ее параметров, так как появляется для каждой встроенной функции Excel, как встроенной, так и в строке формул:
Широко распространенный ответ на эту потребность состоит в том, что пользовательские функции невозможно, но я хочу оспаривать эту веру.
Эта проблема
В настоящее время лучшее, что я видел, это определить функции (часто используя вышеупомянутый вызов MacroOptions), чтобы при открытии диалогового окна функции (кнопка fx в строке формулы) их функции и описания параметров выглядели следующим образом:
Как вы можете видеть, это сложная функция со многими параметрами. Если пользователь не знает об этом диалоге "аргументы функции" и как его поднять, и вместо этого он знаком только с стандартной всплывающей подсказкой Excel, они будут видеть только имя формулы и никакую дополнительную помощь:
С ними у них нет шансов правильно предоставить требуемые параметры. (Без чтения документации, которую, конечно же, никто не делает).
Теперь опытный пользователь может знать, что, набрав Ctrl + Shift + A, им будет предоставлен автоматически заполненный список параметров функции, например:
Но, конечно, мы имеем ту же проблему, что и выше, что означает, что стандартные пользователи excel будут использоваться только для поведения по умолчанию с первого изображения и, вероятно, никогда не узнают эту функцию.
По этой причине должно быть ясно, почему этого недостаточно, и мы хотим, чтобы каждая встроенная функция имела встроенный инструмент, который подсказывает пользователю, как использовать эту функцию.
Дразнить
Сначала я мог убедиться, что это просто невозможно, кроме как с помощью собственных приложений приложений Excel. Надстройки и VBA - это функции расширяемости, и этот инструмент может просто не расширяться. Но эта теория оспаривается наличием надстройки Analysis Toolpak. Конечно, он построен в Microsoft, но ANALYS32.xll - автономная надстройка XLL, как и те, которые могут быть созданы в VB, C, C++ и С#. Разумеется, когда этот XLL загружается в приложение, функции, которые он предоставляет, имеют одни и те же подсказки для собственных функций excel:
Разумеется, если эта информация каким-то образом закодирована в этом XLL файле и передана в Excel, есть способ ее репликации с помощью собственных надстроек? Сейчас я нахожусь в том месте, где я собираюсь начать немного учиться об декомпиляции и посмотреть, могу ли я перепроектировать все, что происходит в инструментальной патче анализа.
Как ты можешь помочь
Я почти уверен, что я исследовал всю общедоступную информацию о этой проблеме. Если кто-то знает что-то, я не знаю, что может помочь в этом, но не стесняйтесь звонить. Я очень незнакомый с компиляцией dlls/xlls, созданной с помощью обратной инженерии, поэтому, если кому-то хочется открыть свою локальную копию Analysis32.xll и выясняя, что происходит с определением пользовательских функций, я был бы очень обязан. В противном случае я просто буду копаться в этом сам, пока не удалю все тупики и не отчитаюсь о том, что я нахожу.