Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2014, 09:32   #1
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию Запуск макроса excel макросом из word / VBA

Народ, доброго времени суток.
Помогите, пожалуйста решить проблему:
Есть необходимость запуска макроса в экселе макросом из ворда. Но вот проблема - то что нагуглил не работает в 2010-ом офисе:

Макрос в Ворде-
Код Visual Basic

1 Sub word_macros()
2 GetObject(, "excel.application").Run "Excel_Macros"
3 End Sub


Макрос в Экселе-
Код Visual Basic

1 Sub Excel_Macros()
2 MsgBox "Excel_Macros"
3 End Sub

Как вариант, допускаю, что у меня кривые руки.
Demetros вне форума Ответить с цитированием
Старый 26.02.2014, 09:50   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
GetObject(, "excel.application").Run "Excel_Macros"
Вы создаете экземпляр приложения Excel, и ждете, что там окажется макрос с названием Excel_Macros

А как он там окажется, если запущен пустой Excel, без каких-либо открытых файлов (в т.ч. и подключенных надстроек)?

Впрочем, если подключаться к уже запущенному Excel, где в одном из открытых файлов есть такой макрос в стандартном модуле, - все должно работать.
EducatedFool вне форума Ответить с цитированием
Старый 26.02.2014, 09:55   #3
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вы создаете экземпляр приложения Excel, и ждете, что там окажется макрос с названием Excel_Macros

А как он там окажется, если запущен пустой Excel, без каких-либо открытых файлов (в т.ч. и подключенных надстроек)?

Впрочем, если подключаться к уже запущенному Excel, где в одном из открытых файлов есть такой макрос в стандартном модуле, - все должно работать.
файл с макросом в Excel запущен, но не работает, пишет что не найден макрос
Demetros вне форума Ответить с цитированием
Старый 26.02.2014, 10:31   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Проверил этот код в 2007 - работает. Покопайтесь в настройках безопасности.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 26.02.2014, 14:26   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

И в 2010-м все работает

Раз макрос не найден, - значит, вы его куда-то запрятали)
Макрос должен быть в СТАНДАРТНОМ МОДУЛЕ
и в этом модуле сверху не должно быть строки Option Private Module
EducatedFool вне форума Ответить с цитированием
Старый 28.02.2014, 15:58   #6
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Абракадабра какая-то:
Запустить макрос удалось, но только с одной строкой "Msgbox "бла-бла-бла"" и почему-то окно выскакивает два раза, а что-то другое не хочет запускать. может глюк какой-то? В чем причина?
Demetros вне форума Ответить с цитированием
Старый 28.02.2014, 16:28   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
В чем причина?
Вы перемудрили с кодом

Покажите ваши файлы (excel и word) как есть (со всем кодом) - попробуем найти проблему
EducatedFool вне форума Ответить с цитированием
Старый 28.02.2014, 18:57   #8
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вы перемудрили с кодом

Покажите ваши файлы (excel и word) как есть (со всем кодом) - попробуем найти проблему
Смотри в архиве. Ничего там мудреного нет.
Вложения
Тип файла: rar макросы.rar (29.2 Кб, 27 просмотров)
Demetros вне форума Ответить с цитированием
Старый 28.02.2014, 21:37   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

xlBook.Application.Run "www()" - макрос действительно запускается 2 раза.

xlBook.Application.Run "www" - а так один раз. Почему - не знаю.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 28.02.2014, 22:07   #10
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
xlBook.Application.Run "www()" - макрос действительно запускается 2 раза.

xlBook.Application.Run "www" - а так один раз. Почему - не знаю.
А другие макросы выполняются? кроме Msgbox. У меня не получается.
Может у кого нить есть что-то похожее?
Demetros вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск макроса из VBA raytek Microsoft Office Access 16 16.08.2015 19:33
Запуск макроса в открытом на данный момент Word или Excel demiancz Общие вопросы Delphi 3 21.02.2013 20:21
Запуск макроса в VBA (который в Escel) c документа Word sasha_prof Microsoft Office Word 2 16.01.2013 23:05
Запуск макроса под word из excel siimao Microsoft Office Excel 17 18.09.2010 16:44
Запуск макроса в Excel из программы на C# AnnNet Общие вопросы .NET 1 05.06.2009 16:23