Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как максрос одного MS-приложения может, запустить максрос другого MS-приложения? 
:(
    Опции темы
EKoshelev
Дата 12.10.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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, заранее спасибо тебе  smile 


--------------------
Вежливым и адекватным предлагаю общаться на "ты".
PM MAIL   Вверх
EKoshelev
Дата 13.10.2006, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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

То есть макрос проджекта как бы нажимает экселевскую кнопку.

Может всё-таки кто-ньть знает более локаничный ход. Напишите плз. Буду признателен.


--------------------
Вежливым и адекватным предлагаю общаться на "ты".
PM MAIL   Вверх
Genyaa
Дата 13.10.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Усердный
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.9.2006
Где: Москва

Репутация: 2
Всего: 11



Может быть использовать DDE? Что то типа (пример из Хелпа):

Код

    Dim lngChannel As Long
    lngChannel = DDEInitiate(App:="Excel", Topic:="System")
    DDEExecute Channel:=lngChannel, Command:="[Run(" & Chr(34) & _
        "macros3.xls!main" & Chr(34) & ")]"
    DDETerminate Channel:=lngChannel


Здесь запускаемый макрос main находится в macros3.xls который, как я понимаю Вы уже научились открывать после загрузки excel. Без панелей. Прямой запуск нужного макроса. Единственное, main должен по всей видимости быть Public.

Попробуйте.

Это сообщение отредактировал(а) Genyaa - 13.10.2006, 09:23
--------------------
Всякое решение плодит новые проблемы.
PM WWW   Вверх
EKoshelev
Дата 31.10.2006, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 509
Регистрация: 1.9.2004

Репутация: нет
Всего: нет



Genyaa, спасибо, брат

В том варианте, как ты предложил, не заработало, но чуть подкорректировал и всё стало ОК.

Короче, спасибо.


--------------------
Вежливым и адекватным предлагаю общаться на "ты".
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.