Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как запустить процедуры в Excel-евских надстройках из внешней программы? / 3 сообщений из 3, страница 1 из 1
09.02.2005, 14:54:04
    #32908346
LKO
LKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить процедуры в Excel-евских надстройках из внешней программы?
Собственно сабж.
Есть прога на VB, которая взаимодействует с Excel (т.е. через Excel открывает файлы, читает из них данные, создает новые файлы и т.д...). Т.к. связь "Out of process", то все это происходит довольно меделенно. Есть идея создать надстройку (xla), поместить в нее основные процедуры по работе с данными в Excel-евских файлах, а из внешней проги запускать уже их и передавать нужные параметры.
Можно ли это сделать, если можно, то как?
Ни в хелпе по Office ни в MSDN не нашел ничего вразумительного...
...
Рейтинг: 0 / 0
09.02.2005, 16:42:24
    #32908675
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить процедуры в Excel-евских надстройках из внешней программы?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Command1_Click()
    'для скорости лучше раннее связывание
    Set e = CreateObject("Excel.Application")
    e.WorkBooks.Open ("c:\Книга1.xls")
    e.Run ("Module1.Макрос1")
    e.Quit
    Set e = Nothing
End Sub
...
Рейтинг: 0 / 0
09.02.2005, 18:50:27
    #32908953
LKO
LKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить процедуры в Excel-евских надстройках из внешней программы?
marvan
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Command1_Click()
    'для скорости лучше раннее связывание
    Set e = CreateObject("Excel.Application")
    e.WorkBooks.Open ("c:\Книга1.xls")
    e.Run ("Module1.Макрос1")
    e.Quit
    Set e = Nothing
End Sub


Там и так было раннее связывание (скорости особо не добавляет)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
Dim xl as Excel.Application
Set xl = New Excel.Application
...

xl.Quit
Set xl = Nothing
...
Так же была отключена перерисовка экрана (хотя влияние сомнительно при "Visible = False" ) и на время вставки / изменения блоков данных отключается автопересчет...

Основное узкое место - взаимодействие между двумя программами через RPC
А на счет
Код: plaintext
1.
2.
3.
...
e.Run
...
Спасибо, попробую...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как запустить процедуры в Excel-евских надстройках из внешней программы? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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