AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2016, 12:34   #1  
Artikov is offline
Artikov
Участник
 
33 / 12 (1) ++
Регистрация: 06.06.2016
? Удаление макроса из Excel через x++
Добрый день!

Мне необходимо удалить макрос из Excel файла c помощью x++.
Я нашел, как его запустить, а вот с удалением проблема. Пробовал так, но я совсем не уверен, что это верно (тем более не работает). Буду рад любой помощи, спасибо.
X++:
static void deleteMacros(Args _args)
{
    COM xlApp;            // Excel.Application
    COM wbks, wbk;        // Workbooks, Workbook
    COM wkss, wks;        // Worksheets, Worksheet

    COM vbp;              // Workbook.VBProject (VBA-проект, содержащийся в рабочей книги)
    COM vbc;              // VBProject.VBComponentS (коллекция компонентов проекта: модули, модули класса, формы)
   

    xlApp = new COM("Excel.Application");
    wbks = xlApp.Workbooks();
    wbk  = wbks.Open("C:/Users/aartikov/Desktop/final2.xlsm");  // открываем файл существующей рабочей книги

    vbp = wbk.VBProject();
    vbc = vbp.VBComponents();
    vbc.Remove("setFormulaValuesStart");
    
  //  xlApp.Run("setFormulaValuesStart");

    xlApp.visible(true);
}
Старый 29.07.2016, 12:56   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А зачем?
Старый 29.07.2016, 12:59   #3  
Artikov is offline
Artikov
Участник
 
33 / 12 (1) ++
Регистрация: 06.06.2016
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А зачем?
Нужно, чтобы итоговый файл сохранялся без макросов, а в первоначальном шаблоне этот макрос есть
Старый 29.07.2016, 13:08   #4  
Artikov is offline
Artikov
Участник
 
33 / 12 (1) ++
Регистрация: 06.06.2016
Уже решил проблему, надо было добавить:
X++:
    vbp = wbk.VBProject();
    vbc = vbp.VBComponents();
    vbcom = vbc.Item("Module1");
    vbc.Remove(vbcom);
Старый 29.07.2016, 15:28   #5  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
305 / 873 (30) +++++++
Регистрация: 23.10.2012
Добрый день!
Так же можно сохранять файл в другом типе, без поддержки макросов.
За это сообщение автора поблагодарили: Logger (1).
Старый 29.07.2016, 17:32   #6  
Artikov is offline
Artikov
Участник
 
33 / 12 (1) ++
Регистрация: 06.06.2016
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Добрый день!
Так же можно сохранять файл в другом типе, без поддержки макросов.
тут проблема в том, что когда все необходимые операции уже проделаны и наступает момент сохранения файла, высвечивается такое сообщение (см. Вложение). А я хотел бы от него избавиться. Вот и думаю, как это сделать.
Если просто нажать "Да", то ничего не сохраняется и отчет вылетает
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 424
Размер:	7.9 Кб
ID:	10902  
Старый 31.07.2016, 21:04   #7  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
305 / 873 (30) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Artikov Посмотреть сообщение
высвечивается такое сообщение (см. Вложение). А я хотел бы от него избавиться. Вот и думаю, как это сделать.
На форуме уже поднимался данный вопрос. Проблему решает передача false в метод displayAlerts.
Цитата:
Сообщение от Artikov Посмотреть сообщение
Если просто нажать "Да", то ничего не сохраняется и отчет вылетает
Скорее всего, нужно передать дополнительные параметры при сохранении. Тоже поднимался этот вопрос:
Excel с макросами
За это сообщение автора поблагодарили: S.Kuskov (2), Artikov (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод в Excel через Array Roman N. Krivov DAX: Программирование 15 06.05.2010 12:02
Построчный импорт из Excel через COM olesh DAX: Программирование 20 23.10.2008 14:01
Проблема с импортом из Excel через COM Romsrs DAX: Программирование 18 10.06.2008 10:34
не получается экспорт в excel через COM Dimk DAX: Программирование 2 16.02.2007 19:37
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:51.