none
Удаление макросов из файлов Word и Excel RRS feed

  • Общие обсуждения

  •  

    Добрый день,

     

    Вопрос достаточно простой, но, к сожелнию, нигде не смог найти на него ответ. Суть проблемы в том, что некоторое приложение создает файлы Excel и Word в которых используются макросы. Однако, в последнее время, участились проблемы с доставкой таких файлов по электронной почте т.к. некоторые почтовые сервисы не пропускают сообщения с файлами, содержащими VBA макросы. В связи с этим необходим простой и легальный способ удаления макросов из файлов. Напрямую решить этот вопрос (с использованием макросов) непросто т.к. доступ к программному изменению проектов VBA ограничен системой безопасности, а открывать постоянный доступ к проектам достаточно рисковый шаг. Может кто-нибудь сможет предложить механизм быстрого и полного удаления макросов из файлов Word и Excel без участия пользователя т.к. он не подозревает о наличии макросов, да и не должен этого знать?

    22 февраля 2008 г. 11:07

Все ответы

  • Используйте архивацию с шифрованием. Зашифрованный файл не сможет проанализировать ни одна почтовая программа.

     

    22 февраля 2008 г. 11:29
    Модератор
  • Спасибо, дельный совет. Однако в данном случае его невозможно использовать так как круг адресатов неограничен, а следоавтельно нет уверенности в том, что адресат сможет открыть файл. Может быть есть другие варианты?

    22 февраля 2008 г. 13:13
  • Посмотрите, к примеру, здесь

    http://www.sql.ru/forum/actualthread.aspx?tid=278951

     

    Если не устроит, во вторник напишу подробнее.

    22 февраля 2008 г. 19:16
  •  Seraser написано:

    Спасибо, дельный совет. Однако в данном случае его невозможно использовать так как круг адресатов неограничен, а следоавтельно нет уверенности в том, что адресат сможет открыть файл. Может быть есть другие варианты?

    SFX архивы в RAR ворят чудеса. Архив можно сопроводить информацией типа "для расшифровки используйте имя файла как пароль", которая будет появлятся во время попытки распаковки. Да было бы желание... Wink

    25 февраля 2008 г. 21:50
    Модератор
  •  Andrey Kudrjashov написано:

    Посмотрите, к примеру, здесь

    http://www.sql.ru/forum/actualthread.aspx?tid=278951

     

    Если не устроит, во вторник напишу подробнее.

     

    Андрей, спасибо за ссылку. Я ее уже просматривал, но, к сожалению, не смог реализовать механизм, описанный там. По отдельности макросы отлично работают. Первый разрешает доступ к VBA проекту, а второй удаляет макросы. Однако вместе они не работают. Кроме того, не удается отключить доступ к проектам по окончанию удаления макросов. Буду признателен, если Вы сможете мне помочь.

    26 февраля 2008 г. 6:40
  •  M.S.D. [mdanshin] написано:
     Seraser написано:

    Спасибо, дельный совет. Однако в данном случае его невозможно использовать так как круг адресатов неограничен, а следоавтельно нет уверенности в том, что адресат сможет открыть файл. Может быть есть другие варианты?

    SFX архивы в RAR ворят чудеса. Архив можно сопроводить информацией типа "для расшифровки используйте имя файла как пароль", которая будет появлятся во время попытки распаковки. Да было бы желание...

    К сожалению использование SFX архивов не всегда возможно т.к. некоторые почтовые серверы не позволяют передавать исполнимые файлы. Кроме того, приходится работать с адресатами в различных странах. Наличие у них установленного RAR предугадать невозможно. Думаю, что большинство из них даже не подозревает о том, что есть такая программа. В связи с тем, что работа по обмену информацией является оперативной, то использование дополнительных программ не является лучшим вариантом т.к. может привести к задержке и, следовательно, к материальным расходам, которые, в конечном итоге, будут повешены на IT. Необходимо учесть, что нашим клиентам приходится вести переписку не с постоянными партнерами, а с теми компаниями, которые оказываются партнерами по бизнесу на текущий момент. В связи с этим невозможно установить какое-то программное обеспечение, которое позволяло бы обрабатывать файлы, на стороне адресата. Более рациональным представляется удаление всех макросов после импорта данных в Excel либо Word. Поэтому хотелось бы получить компетентное мнение специалистов как это сделать легально и с минимальными затратами.

    26 февраля 2008 г. 7:05
  •  Seraser написано:

    К сожалению использование SFX архивов не всегда возможно т.к. некоторые почтовые серверы не позволяют передавать исполнимые файлы.

    Это верно. Обычно использовал переименование, что-то типа filename.ex_

     

     Seraser написано:

    Наличие у них установленного RAR предугадать невозможно.

     

    SFX - self-extracting archive - Самораспаковывающийся архив. Наличие установленной программы-архиватора не требуется.

     

    На основе SFX-архивов часто делают некое подобие инсталляторов. Не редко документацию распространяют в виде таких вот архивов. После запуска такого дистрибутива в меню "пуск" можно сделать отдельный раздел, поместить туда нужные файлы и т.д. Представьте это как ФИЧУ! Wink

     

    Но вообще я вас понял. Вам этот метод не подходит. Простите, что отнял время! Smile

    26 февраля 2008 г. 9:04
    Модератор
  •  M.S.D. [mdanshin] написано:

    Но вообще я вас понял. Вам этот метод не подходит. Простите, что отнял время! Smile

     

    Спасибо. Просто ситуации настолько разнообразны, что стандартные методы часто не работают. Думаю, что вопрос избавления от макросов назрел уже давно т.к. с каждым годом антивирусы становятся все строже, а почтовые серверы все сильнее ограничивают возможность передачи информации. Зачастую, пользователь об этом даже и не подозревает. Поэтому и хотелось узнать как на эту проблему смотрят в прогрессивных кругах и есть ли какое-то средство у Microsoft.

    26 февраля 2008 г. 9:56
  • Примерное направление может быть таким:

    Не удалять макросы из этого файла, а создать рядом новый файл, в который покомпонентно перебором перенести сначала стили, затем содержание исходного файла. Если необходимо, то и другие коллекции - короче, все кроме макросов. После этого старый файл с макросами удалить.

    Все средствами VBA реализуется сравнительно просто, но, конечно, все равно должен быть некто, кто нажмет кнопочку СОЗДАТЬ ОЧИЩЕННУЮ КОПИЮ, ГОТОВУЮ ДЛЯ РАССЫЛКИ. Думаю, ваше требование "без участия пользователя" все же чрезмерно.

    И в порядке офтопика: а какие, например, почтовые сервисы  не пропускают файлы ЗА САМ ФАКТ наличия макросов?

    26 февраля 2008 г. 11:45
  • Самый простой алгоритм получается следующий:

    1. Запускаем файл с макросом удаления.

    2. Выбираем файл, в котором требуется удалить макросы (или группу файлов, в этом случае работаем в цикле).

    3. Открываем файл, в котором требуется удалить макросы "TestXX.xls".

    4. Для данного файла перебираем все необходимые листы (или вообще ВСЕ листы) и копируем их в новый временный файл. (Макросы при этом в новый файл не переносятся)

    5. Закрываем исходный файл.

    6. Сохраняем новый файл под старым именем или, если старый необходимо сохранить под новым, к примеру, "_TestXX.xls".

    7. Если выбрана группа файлов, переходим к п.3.

     

    Запросы исходных и конечных путей, сообщений о ходе процесса - по вкусу.

     

    27 февраля 2008 г. 4:52
  •  vasilev.krsk написано:

    И в порядке офтопика: а какие, например, почтовые сервисы  не пропускают файлы ЗА САМ ФАКТ наличия макросов?

    Вот один из примеров

     

        host fastweb.nolarma.it[213.156.55.127] said: 552
        MS-Office file containing VBA macros found inside of the email (in reply to
        end of DATA command)

     

    По информации наших клиентов, также существуют проблемы с отправкой файлов с макросами в адрес южнокорейских компаний.


     

    27 февраля 2008 г. 6:10
  •  vasilev.krsk написано:

    И в порядке офтопика: а какие, например, почтовые сервисы  не пропускают файлы ЗА САМ ФАКТ наличия макросов?

    Вот один из примеров

     

        host fastweb.nolarma.it[213.156.55.127] said: 552
        MS-Office file containing VBA macros found inside of the email (in reply to
        end of DATA command)

     

    По информации наших клиентов, также существуют проблемы с отправкой файлов с макросами в адрес южнокорейских компаний.


     

    27 февраля 2008 г. 6:10
  •  Andrey Kudrjashov написано:

    Самый простой алгоритм получается следующий:

    1. Запускаем файл с макросом удаления.

    2. Выбираем файл, в котором требуется удалить макросы (или группу файлов, в этом случае работаем в цикле).

    3. Открываем файл, в котором требуется удалить макросы "TestXX.xls".

    4. Для данного файла перебираем все необходимые листы (или вообще ВСЕ листы) и копируем их в новый временный файл. (Макросы при этом в новый файл не переносятся)

    5. Закрываем исходный файл.

    6. Сохраняем новый файл под старым именем или, если старый необходимо сохранить под новым, к примеру, "_TestXX.xls".

    7. Если выбрана группа файлов, переходим к п.3.

     

    Запросы исходных и конечных путей, сообщений о ходе процесса - по вкусу.

     

     

    Спасибо за совет. Не было времени его проверить, но ход действий вполне понятен. В ближайшее время постараюсь осуществить его на практике.

    29 февраля 2008 г. 5:48