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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2013, 17:43   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Запуск макроса в открытом на данный момент Word или Excel

Суть вопроса такова.
Как сделать что бы программа запускала выполнение макроса в открытом на данный момент документе Word или Excel? Каждый раз название файлов Word и Excel разное. Надо сначала определить что документ открыт, а потом в нем запустить макрос.
В Интернете нашел такой пример запуска макроса
Код:
vvWord.Application.Run( 'Macros Name' );
А вот как определить какой открыт документ не знаю. Помогите пожалуйста!
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 20.02.2013, 18:50   #2
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Вот вариант когда создаешь свой документ и запускаешь в нем макрос. Но мне это не подходит. Надо узнать что документ уже открыт и именно в этом документе выполнить макрос.
Код:
w:=CreateOleObject('Word.Application');
w.Documents.Open(ExtractFilePath(paramstr(0))+'/Test.doc',ReadOnly := true);
w.Visible := true;
w.ActiveDocument.Application.Run('Макрос1');
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 20.02.2013, 22:16   #3
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Как запустить макрос в Word решил:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
try
  MyWord := GetActiveOleObject('Word.Application');
  MyWord.ActiveDocument.Application.Run('Макрос1');
except
  Showmessage ('Не открыт Word');
end;
end;
а вот с Excel проблема:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
try
  MyExcel:= GetActiveOleObject('Excel.Application');
  MyExcel.ActiveDocument.Application.Run('Макрос1');
except
  Showmessage ('Не открыт Excel');
end;
end;
Но при нажатии на кнопку появляется сообщение "Не открыт Excel". В чем проблема не пойму.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 21.02.2013, 20:21   #4
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Походу никто ничего не знает по этой теме. Вникаю пока сам. Помогли на другом форуме таким кодом:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
try
  MyExcel:= GetActiveOleObject('Excel.Application');
  MyExcel.Run('Макрос1');
except
  Showmessage ('Не открыт Excel');
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
  MyWord := GetActiveOleObject('Word.Application');
  MyWord.ActiveDocument.Application.Run('Макрос1');
except
  Showmessage ('Не открыт Word');
end;
end;
Кнопка для Word работает без проблем. А вот с Excel2007 проблема. Пишет "Не открыт Excel". Днем попробовал на Excel2003 неожиданно заработало. Потом переписал макросы и почему то перестало работать. Сейчас все же мучаюсь с программой под Excel2007. при нажатии на кнопку выдает ошибку:
Код:
First chance exception at $7C812AFB. Exception class EOleException with message 'OLE error 800A03EC'. Process Project1.exe (3612)
Хоть кто нибудь, хоть как то помогите!!!
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск макроса в VBA (который в Escel) c документа Word sasha_prof Microsoft Office Word 2 16.01.2013 23:05
Запуск макроса в новой книге Excel Rendoll Microsoft Office Excel 0 29.08.2012 05:48
Запуск макроса под word из excel siimao Microsoft Office Excel 17 18.09.2010 16:44
Запуск макроса в Excel из программы на C# AnnNet Общие вопросы .NET 1 05.06.2009 16:23
Excel 2007/ А что он делает в данный момент? kzld Microsoft Office Excel 10 30.03.2009 11:14