Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Повторное использование кода в VB / 5 сообщений из 5, страница 1 из 1
30.10.2003, 13:48
    #32310332
Романов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование кода в VB
Добрый день.
Я написал несколько функций и процедур, которые планируется использовать в нескольких книгах MS Excel. И тут возникает вопрос: каким образом в VB организовать повторное использование кода, не копировать же эти функции во все книги. Знаю что существует такой объект как Module, но не могу найти как его динамически подцепить к книге. Подскажите пожалуйста как это организовать.
...
Рейтинг: 0 / 0
30.10.2003, 14:30
    #32310438
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование кода в VB
Повторно-используемый код обычно хранится в надстройках.
Надстройка - это книга с откомпилированным кодом и, возможно, рабочими листами, используемыми по усмотрению автора, но НЕВИДИМЫМИ юзеру.
Надстройки (книги с расширением xla <--eXceL Add-in) хранятся в папке
х:\Program Files\Microsoft Office\Office\Library

См. в:
Э.Уэллс, С.Хешбаргер.
Microsoft Excel 97: разработка приложений.
пер.с англ.- СПб.: БХВ - Санкт-Петербург, 1998. - 624 с., илл.
Глава 13. Распространение приложений и повышение производительности
(стр. 578-592) содержит и другие полезные сведения:
Использование надстроек
Распространение приложений, содержащих несколько файлов
Распространение приложений, использующих объекты других OLE-приложений
Поддержание ссылок на файлы надстроек
Поддержание источников данных для сводных таблиц
Установка дополнительных панелей управления
Защита и скрытие рабочих листов
Проверка установки почтового клиента
Изменение и восстановление установок окружения Excel
Использование собственных процедур установки
------------

Вопрос к сообществу VBA- и VB-программистов:

Встречались ли Вам книги, подобные этому прекрасному руководству по детализации описания объектов MS Office20хх?

Такие руководства достойны того, чтобы о них знали многие!
...
Рейтинг: 0 / 0
30.10.2003, 14:49
    #32310489
Романов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование кода в VB
Спасибо :)
...
Рейтинг: 0 / 0
31.10.2003, 10:18
    #32311324
Романов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование кода в VB
Создал значит я функцию открытия файла OpenDialogExecute(ATitle as String) as String и поместил ее в надстройку opendialog.xla в модуль DialogModule, подключил надстройку, как теперь вызвать эту функцию из кода VB?
...
Рейтинг: 0 / 0
03.11.2003, 13:38
    #32313455
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование кода в VB
>Создал я функцию... и поместил ее в надстройку... в модуль DialogModule
Public-функции надстройки видны только из модуля ThisWorkbook ("ЭтаКнига" в локализованных версиях). Если надстройка большая (много строк кода), основной код целесообразно вынести в тематические модули, а ThisWorkbook оформить в виде диспетчера, перенаправляющего внешние вызовы во внутренние.
>как теперь вызвать эту функцию из кода VB?

1. В отлаженной книге с кодами надстройки до преобразования её в AddIn задайте название надстройки (Title):
Файл-->Свойства-->Вкладка "Документ"-->Название-->Моя надстройка
Ваша надстройка, естественно, должна быть с понятным целевым именем.
Это имя желательно, если есть желание использовать синтаксис п.5
Там же можно ввести и комментарии.
2. Перейти в окно IDE, выделить объект ЭтаКнига, открыть окно его свойств и установить
IsAddIn=True
3. Сохранить xla-книгу в папку Library.


В книгах с прикладными программами, использующими функции созданной надстройки:
4. В обработчике Workbook_Open проверить существование надстройки:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim  a As AddIn
For Each a In Application.AddIns
    If a.Name =  "имя-файла.xla"  Then
        .....
        Exit For
    endif
Next


5. Подключение к надстройке:
Код: plaintext
1.
Set w = Workbooks.Open(Application.AddIns( "Моя надстройка" ).FullName)
w.Подпрограмма [аргумент1, ....,аргументN]
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Повторное использование кода в VB / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]