Как в Excel сделать нестандартную функцию ?

Программирование на Visual Basic for Applications
igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Как в Excel сделать нестандартную функцию ?

Сообщение igor_m » 27.07.2007 (Пт) 19:18

Т.е. не макрос, чтоб запускать его, а чтоб выбрать из списка функций или как-то еще выбрать и вставить в ячейку. Аргументами указать другие ячейки. А саму функцию написать в разделе макросов или где-то еще, не знаю.
Смысл всего этого. Можно с помощью стандартных функций и десятка If ... then вставить сразу в ячейку, но удобнее в разных книгах просто выбирать нужную функцию.
Это как-то делается?
Из хелпушки я понял, что это можно делать, но там написано, типа, ищите ответ в хелпе по VBA. В общем - не нашел нигде :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.07.2007 (Пт) 19:25

Ага.
public function foo(...) as ...
end function

Это не пишут в хелпе.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Re: Как в Excel сделать нестандартную функцию ?

Сообщение KL » 27.07.2007 (Пт) 19:39

igor_m писал(а):Т.е. не макрос, чтоб запускать его, а чтоб выбрать из списка функций или как-то еще выбрать и вставить в ячейку. Аргументами указать другие ячейки. А саму функцию написать в разделе макросов или где-то еще, не знаю.
...в разных книгах просто выбирать нужную функцию...
Это как-то делается?
Из хелпушки я понял, что это можно делать, но там написано, типа, ищите ответ в хелпе по VBA. В общем - не нашел нигде :)


1) сделать можно, но нужно либо читать литературу либо описывать ситуацию детально

2) если функция должна быть доступна в разных книгах, то варианты в основном такие: создавать и подключать надстройку, создавать файл персональных макросов [или эквивалент оного] или копировать функцию в стандартный модуль VBA каждой из книг.

igor_m писал(а):...Смысл всего этого. Можно с помощью стандартных функций и десятка If ... then вставить сразу в ячейку,...


3) думаю, для начала неплохо бы убедиться в верности вот этого: "с помощью стандартных функций и десятка If ... then" Опыт подсказывает, что чаще всего такие формулы сокращаются в несколько раз (выкладывай формулу)

igor_m писал(а):...но удобнее в разных книгах просто выбирать нужную функцию...


4) Оно может и удобнее, но потеря в скорости пересчета может оказаться ощутимой, а кому и неподъемной :-)
Привет,
KL

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 27.07.2007 (Пт) 20:12

GSerg писал(а):Ага.
public function foo(...) as ...
end function


Спасибо тебе большое-пребольшое-пребольшое :P
Я просто даже не ожидал, что все настолько просто.
Хелпушники - поросята и разводилы :P

Удачи всем и всему форуму.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Для KL и может кому понадобится.

Сообщение igor_m » 27.07.2007 (Пт) 20:28

Когда-то работали в Excel (макросы, диалоги). Уж не помню, как делал, но можно сделать, чтоб книжка сразу при запуске excel автоматом открывалась. В эту книжку собираешь все нужное творчество, делаешь меню, а книжку саму скрываешь. Она не мешается, но дополнительный пункт меню с подменю всегда есть и им можно пользоваться.
Очень просто, но удобство проверено временем - если данных не по 100 тыс строк, вполне конкурентоспособно.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

    TopList  
cron