Страница 1 из 1

Как из VB запустить макрос VBA Екселя?

Добавлено: 27 окт 2005, 10:43
VG
Есть программа на Екселе, надо из другой программы на VB запустить макрос в первой программе. Пока получается запустить лишь полностью воспроизведя текст нужного модуля на VBA с поправками и перенеся его в VB. Но это неудобно.

Добавлено: 27 окт 2005, 11:01
Avsha
Может программа на VB должна выдать какой-нибудь признак инициализации запуска макроса в Excel?
А уже затем рабочая книга Excel поймает событие изменения этого признака и запустит макрос.
Признак может храниться например в текстовом файле или в свойствах рабочей книги Excel.

Это все как предположение...

Добавлено: 27 окт 2005, 11:58
pashulka
VG, Попробуйте использовать что-то вроде :

Код: Выделить всё

Dim xlApp As Object

Set xlApp = CreateObject("Excel.Application")

With xlApp
    .Workbooks.Open FileName:="C:\Temp\Test.xls"
    .Run "MyMacros"
    .Quit
End With

Set xlApp = Nothing

Добавлено: 28 окт 2005, 11:02
VG
Оба варианта рабочие. Спасибо.
Но вот выскакиевает мессадж с заголовком - Component Request Pending и с текстом:
"Это действие не может быть выполнено потому, что другое приложение занято. Выберите "Переключить На.." для активации занятого приложения и исправления проблемы.
"Переключить На..." "Повтор"
Может это потому, что я не отключаюсь от книги с запущенным в ней макросом? Но она мне нужна в фоновом процессе.