Использование функций из надстроек

Программирование на Visual Basic for Applications
bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Использование функций из надстроек

Сообщение bdaa » 16.12.2004 (Чт) 13:29

Есть файл надстроек MyFile.xls
Чтобы пользоваться функциями из него в другом файле обязательно ли делать на него ссылку через Tools/References? Нет ли другого способа?
Можно ли эту ссылку сделать программно и как?
Причина: экселевский файл с файлом надстроек будут находиться на компьютерах пользователя и не хотелось бы каждый раз изменять ссылку на этот файл.
Подключение самой надстройки через VBA сделать удается:
AddIns.Add Filename:="E:\MyFile.xla"
AddIns("Myfunctions").Installed = True, а вот функции из нее недоступны.

Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Сообщение Sweety » 16.12.2004 (Чт) 15:15

Для того чтобы надстройка работала с любым файлом ее надо подключить через Сервис/Надстройки в меню Excel.

Предварительно создав настройку путем сохранения документа, с указание типа файла, как "Надстройка MSExcel (*.xla)".

И пользуйся ее, на здоровье, в любом файле :)
Безмолвное дело лучше бесполезного слова.

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 16.12.2004 (Чт) 16:42

Sweety писал(а):Для того чтобы надстройка работала с любым файлом ее надо подключить через Сервис/Надстройки в меню Excel.

Предварительно создав настройку путем сохранения документа, с указание типа файла, как "Надстройка MSExcel (*.xla)".

И пользуйся ее, на здоровье, в любом файле :)


Подключаю через Сервис/Надстройка. Если в редакторе VBA через Tools/References не подключаю эту библиотеку, то не могу вызвать ни одну функцию.
Может что делаю не так.
Подскажите как обратиться к функции из xla-файла.

Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Сообщение Sweety » 16.12.2004 (Чт) 17:25

Так он ее там (в Сервис/Надстройки) видит?

А код функции, где расположен? В Module?
Безмолвное дело лучше бесполезного слова.

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 17.12.2004 (Пт) 9:21

Sweety писал(а):Так он ее там (в Сервис/Надстройки) видит?

А код функции, где расположен? В Module?


Код функции расположен в Module.
Имя файла - MyFile.xla
Имя модуля - MyFunctions
Имя функции - MyFunc1

Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Сообщение Sweety » 17.12.2004 (Пт) 12:07

Функции надстройки видны только из модуля "ЭтаКнига", т.е код функции (MyFunc1) должен находиться именно здесь.

Чтобы из другого файла программно воспользоваться функцией надстройки ты должен:

Set n = Workbooks.Open(Application.AddIns("Название надстройки").FullName)

n.MyFunc1
Безмолвное дело лучше бесполезного слова.

bdaa
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.12.2004 (Ср) 11:37

Сообщение bdaa » 17.12.2004 (Пт) 14:51

Sweety писал(а):Функции надстройки видны только из модуля "ЭтаКнига", т.е код функции (MyFunc1) должен находиться именно здесь.

Чтобы из другого файла программно воспользоваться функцией надстройки ты должен:

Set n = Workbooks.Open(Application.AddIns("Название надстройки").FullName)

n.MyFunc1


Ситуация следующая:
открываю свой файл, при этом файл надстройки тоже открывается, но
если в проекте в Tools/References не поставить на него ссылку, то доступа к функциям надстройки нет, вне зависимости от того, где лежат функции в модули или в ЭтойКниги. Как только ссылку ставлю, то все фукнции и из модулей, и из ЭтойКниги становятся доступны.

Можно ли поставить ссылку (Tools\References) программно?

Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Сообщение Sweety » 17.12.2004 (Пт) 15:36

Рассказываю как делала я, когда мне надо было решить похожую задачу.
Ничего через Tools\References я не подключала.

Я создала в пустой книге Макросы. Сохранила книгу как *.xla с сохранением его в папке C:\Program Files\Microsoft Office\Office\Library

После чего через Сервис/Надстройки его подключила и все замечательно работает.
Безмолвное дело лучше бесполезного слова.


Вернуться в VBA

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

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

    TopList