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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
VG
Сообщения: 13
Зарегистрирован: 27 май 2004, 13:00

Есть программа на Екселе, надо из другой программы на VB запустить макрос в первой программе. Пока получается запустить лишь полностью воспроизведя текст нужного модуля на VBA с поправками и перенеся его в VB. Но это неудобно.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

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

Это все как предположение...
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

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
VG
Сообщения: 13
Зарегистрирован: 27 май 2004, 13:00

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