Страницы: 1
RSS
Справка для пользовательской функции
 
Не знаю правильно ли здесь выложил файлик-пример для создания справки для пользовательской функции решать модераторам.
Хотелось бы помочь тем кто давно искал как создать справку для своей функции и в итоге не нашел. Сильно по голове не бить, потому что это мое больное место.

Почему названия по аргументам я выложил на листе, чтобы на всех языках возможно було бы сформулировать свои ХЕЛПЫ по аргументам
Работает так там модуль с именем DescribeFunction надо запустить, только потом уже функцию использовать. Хотя я этот модуль вписал в Workbook_Open() чтоб при открытии сработал
Изменено: SerArtur - 09.01.2015 23:39:36
 
В общем-то на справку не тянет. Этот метод давно обсуждался и не раз и его применение возможно и без макросов. Большую часть куда больше интересует обычно как создать пояснение для каждого аргумента. Когда-то я выкладывал такой пример(во вложении). Но он подходит для малого кол-ва аргументов, т.к. имеет ограничение на 255 символов в общей совокупности для всех аргументов и описания.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да круто, но у Вас макрос с прибамбасами. Столько кода что при просмотре на глаз не поймешь что для чего работает. Да, у меня тоже ограничение  на  255 символов. А если описание для аргументов надо скажем написать на грузинском или или китайском то VBA ругаться будет. Юникодный шрифт разных "языковых барьеров" не всегда в коде можно написать. Кому как видней.
Спасибо за критику. Всегда рад когда кому то, чего то не нравится - это стимулирует "оттачивание своих мозгов от мусора"  
 
 
В декабре выполнял работу, в которой использовались символы Юникода.
Все тексты вынес на отдельный лист, откуда массивом подтягивал нужные значения на формы, в сообщения... В таком варианте  - хоть сотня языков.
 
Сегодня разбирался с темой подсказок для функций. И выкопал, что результатом выполнения кода:
Код
Application.MacroOptions Macro:="GetComment", Description:="ddddd", Category:=14, HasShortcutKey:=True, ShortcutKey:="a"
Будет следующий текст в исходном коде, если сохранить модуль с функциями через Export File:
Код
'Получить комментарий указанной ячейки
Public Function GetComment(DataRange As Range) As String
Attribute GetComment.VB_Description = "ddddd"               'Собственно, описание функции
Attribute GetComment.VB_ProcData.VB_Invoke_Func = "a\n14"   'Горячая клавиша и категория функции - в данном случае "Определённая пользователем"
    
End Function
т.е. команда Application.MacroOptions просто дописывает в код соответствующие строки. Это достаточно сделать всего один раз, а не при каждом запуске книги. Так же, нет смысла удалять описания после отработки кода, поскольку информация хранится в коде, а не в недрах Excel'я
А можно сделать так:
 - сохраняем исходный текст модуля (Export File...);
 - в любом редакторе вставляем соответствующие атрибуты;
 - снова загружаем модуль (Import File...)
После этого, описанные таким образом функции получат подсказку в диалоге "Вставить функцию"

Самое интересное. Если Вы накосячите, и в коде вместо GetComment.VB_Description напишите имя другой функции, то при загрузке модуля VBA исправит Вашу ошибку, подставив необходимое имя.
В приложении модуль с функцией и книга Excel с интегрированным модулем.
Изменено: Skif-F - 11.03.2015 00:27:55
Страницы: 1
Наверх