![]() |
|
Модераторы: mihanik |
![]()
|
|
| EKoshelev |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 509 Регистрация: 1.9.2004 Репутация: нет Всего: нет |
В общем предполжим, что в MS App1 написан примерно следующий макрос.
Dim v_XLApp As Variant Dim v_XLWb As Variant Set v_XLApp = CreateObject("Excel.Application") Set v_XLWb = v_XLApp.Workbooks.Add v_FileName = "D:\..." Set v_XLApp = New Excel.Application Set v_XLWb = v_XLApp.Workbooks.Add То есть мы создали процесс Excel. Как теперь запустить макрос в загруженной экселине, который находится в модуле Module1 и называется Main (без параметров)? Aloha, заранее спасибо тебе -------------------- Вежливым и адекватным предлагаю общаться на "ты". |
|||
|
||||
| EKoshelev |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 509 Регистрация: 1.9.2004 Репутация: нет Всего: нет |
Я тут нашёл сам один способ. Правда, немного через задницу.
Короче, если из макроса MS Project нужно врубить макрос Excel'я, делаем следующее. В экселе создаём новую панель инструментов с именем MyPanel. На ней кнопку. Кнопка запускает нужный нам макрос (как она называется не важно, клавное что она на панели первая и единственная). Ясен пень, что панель можно скрыть. Далее пишем макрос в MS Project: Dim v_XLApp As Variant Dim v_XLWb As Variant Dim v_FileName As Variant ' Открытие Set v_XLApp = CreateObject("Excel.Application") Set v_XLWb = v_XLApp.Workbooks.Add ' загрузка v_FileName = "D:\macros3.xls" Set v_XLWb = v_XLApp.Workbooks.Open(v_FileName) ' собсно запуск макроса v_XLApp.CommandBars("MyPanel").Controls(1).Execute То есть макрос проджекта как бы нажимает экселевскую кнопку. Может всё-таки кто-ньть знает более локаничный ход. Напишите плз. Буду признателен. -------------------- Вежливым и адекватным предлагаю общаться на "ты". |
|||
|
||||
| Genyaa |
|
|||
|
Усердный ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.9.2006 Где: Москва Репутация: 2 Всего: 11 |
Может быть использовать DDE? Что то типа (пример из Хелпа):
Здесь запускаемый макрос main находится в macros3.xls который, как я понимаю Вы уже научились открывать после загрузки excel. Без панелей. Прямой запуск нужного макроса. Единственное, main должен по всей видимости быть Public. Попробуйте. Это сообщение отредактировал(а) Genyaa - 13.10.2006, 09:23 --------------------
Всякое решение плодит новые проблемы. |
|||
|
||||
| EKoshelev |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 509 Регистрация: 1.9.2004 Репутация: нет Всего: нет |
Genyaa, спасибо, брат
В том варианте, как ты предложил, не заработало, но чуть подкорректировал и всё стало ОК. Короче, спасибо. -------------------- Вежливым и адекватным предлагаю общаться на "ты". |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |