На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Запуск макроса из C++ Builder
    Кто подскажет, какой строкой из формы C++ Builder запускается макрос шаблона dot(Word). Данные переходят в шаблон, а затем нужно, чтобы далее работал макрос, созданный в шаблоне.
    Для Excel это пишется так:
    App.OleProcedure("Run","MyMacros");
    а для Word-а? ???
      Надо полагать, точно так же.
        Да, вот такая запись не выдает ошибки:
        MSWord.OleProcedure("Run","Svodka1");
        Но уже при запущенном приложении Word макрос в работу не запускается, а появляется експешка, которая стопорит работу. Дальше можно только закрыть документ Word, если повезет, без зависания программы. В чем тут дело? ???
        Кстати, вывод танных в Word осуществлялся через WordApp. Цепляю его вместо  MSWord, выдает ошибку, так как это не его структура.
          Ответ мне подсказали на другом форуме. Поэтому, кому интересно, привожу пример, как запускается макрос. Чтобы другие не мучались.

          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);
            #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);
            }

            скомпилированный екзешник ошибок давать не должен
            Сообщение отредактировано: gibomn -
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script Execution time: 0,1025 ]   [ 15 queries used ]   [ Generated: 18.08.19, 13:07 GMT ]