Страницы: 1
RSS
Как добавить макрос в ексель файл через автоматизацию для обработки событий редактирования содержимого ячеек?
 
Как добавить макрос в ексель файл через автоматизацию для обработки событий редактирования содержимого ячеек?
 
Экспорт всех стандартных модулей из текущей книги, во вновь созданную рабочую книгу
Согласие есть продукт при полном непротивлении сторон
 
Нет никакой текущей книги и модулей. Автоматизация выполняется вообще не из VBA, а через COM.
 
Поясните точнее, что Вы вообще хотите. Если отслеживать изменение ячеек - надо писать макрос. Если через COM - писать свою надстройку с обработкой событий листов и т.д. Если хотите изменить код какого-то там COM, то вряд ли это для данного форума.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Перефразирую. Через COM ("Excel.Application") выполняется доработка файла эксель из 1С. Добавляется защита книги, добавляются формулы для подсчета итогов по выгружаемым данным. Предполагается рассылка этих файлов для дальнейшего заполнения пользователями. Было бы супер, если бы было возможно добавление обработчиков редактирования открытых для редактирования ячеек.
Интересно возможно ли вставить макросы через такую автоматизацию?
 
Цитата
Userdo написал:
Через COM ("Excel.Application")
Вот что это значит? ГДЕ и КАК это происходит? Где хочется отслеживать редактирование ячеек? В какой момент? В самих файлах уже после отсылки пользователю или на том же ПК, на котором производятся преобразования файла?
Вставить макросы можно, но надо постараться. Как пример подобного(но не через позднее связывание, а из самого Excel):
Как добавить код процедуры программно, скопировать модуль
Там прям есть готовый пример для обработки события изменения ячеек:
Как создать событийную процедуру (изменение данных на листе, открытие книги и т.п.).
По сути там просто вместо ActiveWorkbook надо будет вписывать ссылку на книгу, которую получаете через свой Excel.Application
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Оказалось все очень просто:
Код
файл = Новый ComObject("Excel.Application");
файл.WorkBooks.Open(ФайлВыгрузки);
Файл.VBE.ActiveVBProject.VBComponents("Лист1").CodeModule.AddFromString(ТекстПроцедуры);

Но есть нюанс изначально файл выгружается из 1с без макросов с расширением xlsx. Чтобы сохранить файл с макросами необходимо сохранять с расширением xlsm:
Книга.SaveAs(НовоеИмя,52); //52 - xlsm
Страницы: 1
Наверх