В microsoft word не установлено доверие к проектам visual basic

Обновлено: 02.07.2024

2016-12-14_17-33-32.jpg 12.17 Кб, файл не был скачан.

You don't have the permssions to download the attachments of this post.

2 Ответ от yshindin 15.12.2016 14:22:44

.
Не знаю, связано ли это с тем, что я записал для себя макрос, или нет.
Как от этого избавиться?
.

3 Ответ от yshindin 15.12.2016 14:26:34

.
Откройте ваш файл в режиме VBA (Alt+F11) и просмотрите дерево VBA-проекта, делая двойные щелчки на именах модулей (прежде всего, на модуле документа и на модуле Normal.dot). VBA-редактор будет отображать в области редактирования тексты VBA-процедур (или макросов).
.

Забыл скриншот прицепить к предыдущему ответу.

15-12-2016 13-11-38.jpg 24.04 Кб, файл не был скачан.

You don't have the permssions to download the attachments of this post.

4 Ответ от Jevgenij 19.12.2016 16:12:26

Спасибо за подробный ответ!

Посмотрел по Alt+F11 — там только записанный мной макрос, в котором ничего кроме замен нет:

You don't have the permssions to download the attachments of this post.

5 Ответ от yshindin 19.12.2016 16:23:10

6 Ответ от yshindin 19.12.2016 17:17:49

Посмотрел по Alt+F11 — там только записанный мной макрос, в котором ничего кроме замен нет:

А вы смотрели только модуль документа, или все модули, включая модуль NewMacros?

7 Ответ от Jevgenij 23.12.2016 13:33:23

Предупреждение системы безопасности появляется как при открытии любого документа, так и при создании нового. Если нажать "Включить содержимое", то всё работает как надо.

8 Ответ от yshindin 23.12.2016 13:55:56

Чтобы постоянно не приходилось нажимать на "Включить содержимое", установите постоянное разрешение на запуск макросов (указываю для английской версии Word 2007 и более поздней версии):
File -> Options -> Trust Center ->Trust Center Settings-> Macro Settings … отметьте опцию Enable all Macros.
Если вам в макросах необходимо программно управлять структурой и содержимым VBA-проектов, то отметьте флажок Trust access to VBA project object model.

Попытка запустить макрос на воспроизведение может оказаться неудачной. Самая распространенная причина того, что после записи макрос не работает заключается в системе безопасности, но давайте по порядку.

Система безопасности Microsoft Office

Microsoft Office снабжен своей собственной системой безопасности. Задача этой системы заключается в противодействии макровирусам. Макровирусы – это вредоносные программы, написанные на языке VBA. Для своего распространения и перемещения от одного зараженного файла к другому макровирусы используют возможности языка программирования. Наибольшее распространение получили макровирусы, созданные для MS Word и MS Excel. Макровирусы — это главная проблема, которую создал язык программирования VBA, встроенный в офисные программы. Безопасная работа с макросами заключается в соблюдении простого правила: запрещать выполнение макросов, если их назначение Вам не известно.

Уровни безопасности

В системе безопасности предусмотрено четыре уровня защиты, для того чтобы их увидеть в MS Word 2003 либо MS Excel 2003, зайдем в меню Сервис/Макрос/Безопасность

Urovni_bezopasnosti_2003

Для просмотра уровней системы безопасности в MS Word 2007 и MS Excel 2007 нажимаем кнопку Microsoft Office , далее кнопку Параметры Word (Excel)/Центр управления безопасностью/Параметры центра управления безопасностью, после чего появится окно настройки параметров макросов. Описания уровней безопасности говорят сами за себя.

Urovni_bezopasnosti_2007

Цифровые подписи макросов

Особый интерес в окне "Центр управления безопасностью" представляет опция "Отключить все макросы кроме макросов с цифровой подписью". Выбрав эту опцию, Вы сможете спокойно запускать макросы, которые вы создали и подписали сами. Также можно использовать "Надежные расположения", где Вы можете хранить проверенные и надежные макросы и надстройки.

Надежные расположения

Добавлю несколько слов о разделе "Надежные расположения". В этом разделе прописываются пути к папкам, которые считаются надежными источниками для открытия файлов. Надежные расположения можно добавлять, удалять, изменять и отключать. Использование надежных расположений также снизит вероятность возникновения проблем при выполнении макросов. Добавляются надежные расположения в параметрах центра управления безопасностью. На видео показано как добавить надежные расположения в Microsoft Excel 2013 , но в других версиях и в других приложениях всё делается аналогично.

Настройка доступа к объектной модели VBA

И еще один нюанс, для корректной работы макросов и надстроек нужно установить доверие к объектной модели проектов VBA. Сделать это можно следующим образом:

Для приложений Office 2003 – Сервис/Макрос/Безопасность/Надежные издатели/Доверять доступ к Visual Basic Project

Dostup_k_proektu_2003

Для приложений Office 2007 – Меню/Параметры/Центр управления безопасностью/Параметры центра управления безопасностью/Параметры макросов/Доверять доступ к объектной модели проектов VBA (установить галочку).

Parametryi-makrosov

В приложениях пакета MS Office 2010 расположение центра управления безопасностью, аналогично расположению его в версии 2007, с той лишь разницей, что кнопка Office изменена на вкладку с названием "Файл", выделенную зеленым цветом.

Таким образом, большую часть проблем связанных с работоспособностью макросов решит установка опции "Доверять доступ к проектам VBA" и некоторое снижение уровня безопасности.


Макросы – это инструмент для создания команд в приложении Microsoft Excel, которые позволяют значительно сократить время на выполнение задач, автоматизировав процесс. Но, в то же время, макросы являются источником уязвимости, которой могут воспользоваться злоумышленники. Поэтому, пользователь на свой страх и риск должен решить применять данную возможность в конкретном случае, или нет. Например, если он не уверен в благонадежности открываемого файла, то лучше макросами не пользоваться, ведь они могут послужить причиной заражения компьютера вредоносным кодом. Учитывая это, разработчики предоставили возможность пользователю самому решать вопрос включения и отключения макросов.

Включение и отключение макросов через меню разработчика

Основное внимание мы уделим процедуре включения и отключения макросов в самой популярной и распространённой на сегодня версии программы — Excel 2010. Потом, более бегло поговорим о том, как это сделать в других версиях приложения.

Включить или отключить макросы в Microsoft Excel можно через меню разработчика. Но, проблема состоит в том, что по умолчанию данное меню отключено. Чтобы его включить, переходим во вкладку «Файл». Далее, кликаем по пункту «Параметры».


В открывшемся окне параметров, переходим в раздел «Настройка ленты». В правой части окна данного раздела устанавливаем галочку около пункта «Разработчик». Жмем на кнопку «OK».


После этого, на ленте появляется вкладка «Разработчик».

Переходим во вкладку «Разработчик». В самой правой части ленты расположен блок настроек «Макросы». Чтобы включить или отключить макросы, кликаем по кнопке «Безопасность макросов».


Открывается окно центра управления безопасностью в разделе «Макросы». Для того, чтобы включить макросы, переставляем переключатель в позицию «Включить все макросы». Правда, данное действие разработчик не рекомендует выполнять в целях безопасности. Так что, всё выполняется на свой страх и риск. Жмем на кнопку «OK», которая расположена в нижнем правом углу окна.


Отключаются макросы тоже в этом же окне. Но, существует три варианта отключения, один из которых пользователь должен выбрать в соответствии с ожидаемым уровнем риска:

  1. Отключить все макросы без уведомления;
  2. Отключить все макросы с уведомлением;
  3. Отключить все макросы, кроме макросов с цифровой подписью.

В последнем случае, макросы, у которых будет иметься цифровая подпись, смогут выполнять задачи. Не забываем жать на кнопку «OK».


Включение и отключение макросов через параметры программы

Существует ещё один способ включения и отключения макросов. Прежде всего, переходим в раздел «Файл», и там жмем на кнопку «Параметры», как и в случае включения меню разработчика, о чем мы говорили выше. Но, в открывшемся окне параметров, переходим не в пункт «Настройка ленты», а в пункт «Центр управления безопасностью». Кликаем по кнопке «Параметры центра управления безопасностью».


Открывается то же самое окно Центра управления безопасностью, в которое мы переходили через меню разработчика. Переходим в раздел «Параметры макросов», и там включаем или отключаем макросы тем же способом, как делали это в прошлый раз.


Включение и отключение макросов в других версиях Excel

В других версиях программы Excel процедура отключения макросов несколько отличается от указанного выше алгоритма.

В более новой, но менее распространенной версии программы Excel 2013, несмотря на некоторую разницу в интерфейсе приложения, процедура включения и отключения макросов происходит по тому же алгоритму, который был описан выше, а вот у более ранних версий он несколько отличается.

Для того, чтобы включить или отключить макросы в программе Excel 2007, нужно сразу кликнуть по логотипу Microsoft Office в верхнем левом углу окна, а затем в нижней части открывшейся страницы нажать на кнопку «Параметры». Далее, открывается окно Центра управления безопасностью, и дальнейшие действия по включению и отключению макросов практически ничем не отличаются от описанных для Excel 2010.

В версии Excel 2007 достаточно просто последовательно перейти по пунктам меню «Сервис», «Макрос» и «Безопасность». После этого, откроется окно, в котором нужно выбрать один из уровней безопасность работы макросов: «Очень высокая», «Высокая», «Средняя» и «Низкая». Эти параметры соответствуют пунктам параметров макросов более поздних версий.

Как видим, включить макросы в последних версиях программы Excel несколько сложнее, чем это было в предыдущих версиях приложения. Это связано с политикой разработчика на увеличение уровня безопасности пользователя. Таким образом, макросы может включить только более или менее «продвинутый» пользователь, который способен объективно оценить риски от выполняемых действий.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Попытка запустить макрос на воспроизведение может оказаться неудачной. Самая распространенная причина того, что после записи макрос не работает заключается в системе безопасности, но давайте по порядку.

Система безопасности Microsoft Office

Microsoft Office снабжен своей собственной системой безопасности. Задача этой системы заключается в противодействии макровирусам. Макровирусы – это вредоносные программы, написанные на языке VBA. Для своего распространения и перемещения от одного зараженного файла к другому макровирусы используют возможности языка программирования. Наибольшее распространение получили макровирусы, созданные для MS Word и MS Excel. Макровирусы — это главная проблема, которую создал язык программирования VBA, встроенный в офисные программы. Безопасная работа с макросами заключается в соблюдении простого правила: запрещать выполнение макросов, если их назначение Вам не известно.

Уровни безопасности

В системе безопасности предусмотрено четыре уровня защиты, для того чтобы их увидеть в MS Word 2003 либо MS Excel 2003, зайдем в меню Сервис/Макрос/Безопасность


Для просмотра уровней системы безопасности в MS Word 2007 и MS Excel 2007 нажимаем кнопку Microsoft Office , далее кнопку Параметры Word (Excel)/Центр управления безопасностью/Параметры центра управления безопасностью, после чего появится окно настройки параметров макросов. Описания уровней безопасности говорят сами за себя.


Цифровые подписи макросов

Особый интерес в окне "Центр управления безопасностью" представляет опция "Отключить все макросы кроме макросов с цифровой подписью". Выбрав эту опцию, Вы сможете спокойно запускать макросы, которые вы создали и подписали сами. Также можно использовать "Надежные расположения", где Вы можете хранить проверенные и надежные макросы и надстройки.

Надежные расположения

Добавлю несколько слов о разделе "Надежные расположения". В этом разделе прописываются пути к папкам, которые считаются надежными источниками для открытия файлов. Надежные расположения можно добавлять, удалять, изменять и отключать. Использование надежных расположений также снизит вероятность возникновения проблем при выполнении макросов. Добавляются надежные расположения в параметрах центра управления безопасностью. На видео показано как добавить надежные расположения в Microsoft Excel 2013 , но в других версиях и в других приложениях всё делается аналогично.

Настройка доступа к объектной модели VBA

И еще один нюанс, для корректной работы макросов и надстроек нужно установить доверие к объектной модели проектов VBA. Сделать это можно следующим образом:

Для приложений Office 2003 – Сервис/Макрос/Безопасность/Надежные издатели/Доверять доступ к Visual Basic Project


Для приложений Office 2007 – Меню/Параметры/Центр управления безопасностью/Параметры центра управления безопасностью/Параметры макросов/Доверять доступ к объектной модели проектов VBA (установить галочку).


В приложениях пакета MS Office 2010 расположение центра управления безопасностью, аналогично расположению его в версии 2007, с той лишь разницей, что кнопка Office изменена на вкладку с названием "Файл", выделенную зеленым цветом.

Таким образом, большую часть проблем связанных с работоспособностью макросов решит установка опции "Доверять доступ к проектам VBA" и некоторое снижение уровня безопасности.

Microsoft Excel – это популярное для работы с таблицами приложение, используемое в офисах и дом.

Microsoft Excel – это популярное для работы с таблицами приложение, используемое в офисах и домах 90% людей. Несмотря на то что программе уже 34 года, новые возможности продолжают добавляться в обновлениях. Поэтому программа до сих пор популярна. Чтобы облегчить себе работу, нужно знать, как работают эти опции. Для начала расскажем о том, что такое макросы, а потом – как включить макросы в Excel 2010, 2007, 2003.


Что такое макрос?

До того как включить макросы в Excel, необходимо узнать, для чего они нужны. Макросы – это сохраненные в строках таблицы заранее созданные последовательности действий с данными. Реализованы на языке VBA, что позволяет работать не только с командами Экселя, но и других приложений Office, поддерживающих этот язык. Используя макросы, можно настроить автоматическое форматирование строк таблицы, отправку по почте, или создание презентации.


Описание параметров макросов

После сохранения макросы содержат пять параметров работы, необходимых для обеспечения защищенности при взаимодействии с ними, так как включить макросы в Excel легко, а избавляться от вирусов – нет.

  1. Отключить макросы без уведомления. Применяется для таблиц, автор которых неизвестен. Деактивирует сохраненные в ячейках макросы, не предупреждая об этом. Пользуйтесь им при опасности вирусов в таблице.
  2. Отключить макросы с уведомлением. Этот режим выбран стандартно. Предлагает выключать макросы, но перед этим запрашивает разрешения пользователя. С ним вы сможете решать, оставлять ли, или нет отдельно каждый макрос.
  3. Отключить макросы, кроме макросов с цифровой подписью. Похож на предыдущий, но автоматически разрешает использование макросов, подписанных цифровой подписью предприятия, доверие которому вы уже подтвердили.
  4. Включить макросы. Из названия понятно, что параметр разрешает использование макрокоманд, записанных в таблицу.
  5. Доверять доступ к объектной модели проектов VBA.


Показатель для разработчиков, открывающий доступ таблицы к программам, написанным для модели VBA любого приложения, по желанию пользователя. Это позволяет программисту настраивать, какой код имеет доступ к макросам, и куда макросы могут отправлять данные. При этом взломать или повредить работу команд программиста практически невозможно. Но новичку в VBA лучше не использовать этот параметр.


Как включить макросы в Excel

Существует три версии Экселя, где активация макросов отличается друг от друга. Сначала рассмотрим, как включить макросы в Excel 2010.


Как включить макросы в MS Excel 2010

В 2010 версии Экселя разработчики сделали упор на безопасность, поэтому для включения макросов нужно сделать следующее:

  • В верхнем меню приложения нажмите «Файл».
  • Откроется список, выбрать предпоследний пункт – «Параметры».
  • Нажмите, и попадете в окно «Параметры Excel». Слева перейдите в «Центр управления безопасностью».


  • Справа в тексте кликните «Параметры. ».
  • Откроется еще одно меню, где нужно выбрать «Параметры макросов».
  • Отметьте один из пунктов, нажмите «Ок».


  • Закройте и запустите Excel снова, для вступления изменений в силу.

Как включить макросы в MS Excel 2007

Здесь способ не сильно отличается от того, как включить макросы в Excel 2010:


  • Перейдите в раздел «Центр управления безопасностью», а затем «Параметры центра. »
  • В открывшемся меню отметьте режим работы макросов, который нужен.


Как включить макросы в MS Excel 2003

2003 Эксель уступает в безопасности 2010-му, и включить макросы в нем легче, но важно тщательно проверять файлы на вирусы, пользуясь им. Включить исполнение макросов можно так:

  1. В открытом приложении нажмите на кнопку «Сервис» в верхнем меню.
  2. В выпадающем списке нажмите на «Макрос», и «Безопасность».
  3. Откроется меню безопасности, где нужно отметить уровень безопасности для макросов.
  4. Нажмите «Ок», и перезайдите в Эксель.


Способы

Включить макрокоманды можно одним из трех путей:


Дополнительный способ работает, когда в Экселе открывается файл, содержащий макрокоманды. В верхней части листа появляется желтая карточка с надписью «Предупреждение системы безопасности». Кликните по «Включить содержимое», и они активируются.


С помощью Backstage


Программы электронного документооборота совершили настоящий прорыв, значительно облегчив работу офисных сотрудников. Но вскоре стало понятно, что можно продвинуться еще дальше, автоматизировав рутинные действия пользователей. У программируемых офисных приложений было явное преимущество на рынке. Visual Basic For Applications не удовлетворял всех потребностей: требовалась поддержка различных «внешних» языков, в том числе и скриптовых.

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

Конечно же, в основу новой программной платформы, которую назвали объектная модель (Microsoft Office Object Model), или Автоматизация Microsoft Office (Microsoft Office Automation), легла технология COM/OLE (последняя, в свою очередь, разрабатывалась в немалой степени с оглядкой на потребности пакета Office).

Вкратце суть технологии автоматизации Office можно описать следующим образом: сами приложения, их детали (например, меню или настройки безопасности), открытые документы и содержимое документов представляют собой для программы-клиента набор объектов, имеющих определенные свойства и методы. Например, объект Приложение может иметь свойство Коллекция Документов, отдельный Документ из которой имеет свойство Текст и метод Найти.

Пример использования на C++

Пример использования на PowerShell

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

Эти особенности позволяют создавать не только гибкие и многофункциональные системы автоматизации документооборота, но и вредоносные приложения, к примеру, отслеживающие отсылку писем Outlook и добавляющие вложения. При этом у вредоносного исполняемого кода будет минимальный размер, поскольку основная работа выполняется объектами Office. Это облегчает создание вредоносного кода, а также его распространение и сокрытие от антивирусных программ.

msoAutomationSecurity

С автоматизацией связан интересный момент, упоминавшийся ранее. Настройки безопасности приложений (те, что определяют возможность автозапуска макросов и другого активного содержимого из документов) в программной модели Office определяются переменной-«свойством» Application.AutomationSecurity. По умолчанию это свойство имеет значение msoAutomationSecurityLow, что позволяет запуск любого активного содержимого из открываемых автоматически документов. Настройки безопасности, выставленные пользователем в Trust Center или администратором при помощи административных шаблонов, сохраненные в реестре, не оказывают влияния на настройки безопасности приложений Microsoft Office, запущенных в режиме автоматизации. Для безопасной автоматической обработки документов свойство AutomationSecurity должно быть целенаправленно изменено программно во время исполнения.
Такая небольшая деталь может иметь огромное значение для компаний, в которых настроена автоматическая обработка получаемых извне (по электронной почте, из облачных хранилищ и т.п.) документов.

Доступ к объектной модели VBA

Как и для большинства других элементов приложений Microsoft Office,
возможность управления и модификации проектов и кода Visual Basic for Applications программным путем доступна через интерфейсы автоматизации. По умолчанию она отключена для повышения безопасности пакета и защиты от макровирусов. При попытке программно создать объект, имеющий отношение к VBA, вызывающей программе вернется ошибка:

Error: 6068
Programmatic access to Visual Basic Project is not trusted.

Если пользователю все же необходим программный доступ к VBA, он может разрешить эту возможность в настройках Trust Center:


Недостаток этого решения в том, что заданная таким образом настройка сохраняется в ветке реестра, доступной пользователю для модификации, например для Microsoft Word это:

HKEY_CURRENT_USER\Software\Microsoft\Office\ >> Версия Office << \Word\Security\AccessVBOM

Это значит, что любая программа, которой необходим доступ к объектной модели VBA, может «разрешить» себе эти действия совершенно самостоятельно. Ниже приведен код программы на VBScript, выставляющей этот флаг в реестре и записывающей код в проект VBA открытого в данный момент документа.


Настройка программного доступа к VBA может определяться также ключами реестра

HKLM\Software\Microsoft\Office\>> Версия Office <<\Word\Security\AccessVBOM

HKLM\SOFTWARE\Policies\Microsoft\Office\>> Версия Office <<\Word\Security\AccessVBOM

Эти ключи имеют преимущество перед содержащимися в ветке HKEY_CURRENT_USER. Их может изменить администратор, например, при помощи шаблонов групповых политик, заблокировав тем самым возможность редактирования этой настройки пользователем. Однако по умолчанию эти ключи отсутствуют.

Удаленное выполнение/DCOM

Технология COM изначально проектировалась в расчете на прозрачность местоположения: вызываемые компоненты могут являться библиотеками (DLL), загружаемыми в вызывающий процесс, либо в отдельный процесс-прокси, локально исполняемыми программами (EXE) или компонентами, расположенными на каком-либо другом компьютере (DCOM).

image

Например, можно сделать компоненты Microsoft Word доступными для удаленного управления, выполнив настройку вручную. При желании можно настроить доступ как с аутентификацией, так и без нее (для анонимного подключения). При этом приложения будут выполняться от имени интерактивного (осуществившего локальный вход в систему) пользователя.

  1. открыть порт DCOM в брандмауэре и добавить Microsoft Word в список разрешенных программ
  2. при помощи утилиты Dcomcnfg настроить удаленный доступ для компонента Microsoft Word 97 — 2003 Document



Один из этапов настройки компонента DCOM для Word

Естественно, те же настройки можно выполнить и программно.
Таким образом, объектная модель Microsoft Word доступна для удаленного управления.


Пример кода для Visual Studio, читающего содержимое заданного файла на удаленном компьютере

Отслеживание действий пользователя/События

Ниже приведен фрагмент текста программы, способной отслеживать такие действия пользователя в программе Microsoft Word, как открытие, закрытие документа, и отправка его на принтер. В каждом из случаев программа получает текст активного документа.


Применение для закрепления/выполнения кода в уязвимой системе

В пентестерской (и не только) практике иногда появляется необходимость оставить возможность доступа к компьютеру, которая не вызовет подозрений у пользователя или администраторов и не будет обнаружена антивирусом. Компонентная модель Office прекрасно подходит для таких целей. Хорошие описания некоторых вариантов составил Matt Nelson (@enigma0x3) (Excel, Outlook).

В первом случае используется программный доступ к Excel для запуска макроса, во втором Outlook для запуска произвольного приложения.


Предупреждения Outlook

Использование возможностей DCOM позволяет производить эти действия удаленно, не сохраняя на уязвимом компьютере какой-либо исполняемый код, который может быть обнаружен антивирусными программами.

В реестре эта опция сохраняется в подключе Security программы Microsoft Outlook, к примеру для Microsoft Office версии 2016 32-битной с платформой ClickToRun полный путь ключа:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\16.0\Outlook\Security

Чтобы отключить предупреждения о подозрительной программной активности, необходимо добавить значение:ObjectModelGuard (DWORD) 0x2.
Изменить эти настройки в последних версиях Microsoft Office возможно средствами группового администрирования, либо через реестр. Возможность менять их через пользовательский интерфейс по умолчанию отключена.

Читайте также: