Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.220.223] |
|
Сообщ.
#1
,
|
|
|
Кто подскажет, какой строкой из формы C++ Builder запускается макрос шаблона dot(Word). Данные переходят в шаблон, а затем нужно, чтобы далее работал макрос, созданный в шаблоне.
Для Excel это пишется так: App.OleProcedure("Run","MyMacros"); а для Word-а? ??? |
Сообщ.
#2
,
|
|
|
Надо полагать, точно так же.
|
Сообщ.
#3
,
|
|
|
Да, вот такая запись не выдает ошибки:
MSWord.OleProcedure("Run","Svodka1"); Но уже при запущенном приложении Word макрос в работу не запускается, а появляется експешка, которая стопорит работу. Дальше можно только закрыть документ Word, если повезет, без зависания программы. В чем тут дело? ??? Кстати, вывод танных в Word осуществлялся через WordApp. Цепляю его вместо MSWord, выдает ошибку, так как это не его структура. |
Сообщ.
#4
,
|
|
|
Ответ мне подсказали на другом форуме. Поэтому, кому интересно, привожу пример, как запускается макрос. Чтобы другие не мучались.
WideString macr("Macros1"); // Запуск самого макроса WordApp-> Run(macr.c_bstr(), EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam); |
Сообщ.
#5
,
|
|
|
#include <utilcls.h>
#include <ComObj.hpp> #include <wchar.h> #include <windows.h> Variant app; String str_errors; try { app = CreateOleObject("Word.Application"); app.OlePropertyGet("Documents").OleProcedure("Open", путь к файлу); app.OlePropertySet("Visible",true); WideString macr(имя Макроса); app.OleProcedure("Run",macr); } catch(Exception &ex) { str_errors=ex.Message; ShowMessage(str_errors); } скомпилированный екзешник ошибок давать не должен |