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

Система безопасности 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 Knopka_Office, далее кнопку Параметры Word (Excel)/Центр управления безопасностью/Параметры центра управления безопасностью, после чего появится окно настройки параметров макросов. Описания уровней безопасности говорят сами за себя.

Urovni_bezopasnosti_2007

Уже замечено, что оптимальное соотношение между удобством и безопасностью при работе с макросами, достигается выбором второго пункта, который и установлен по умолчанию — "Отключить все макросы с уведомлением". В этом случае при запуске файлов, содержащих макросы, система выдает предупреждающее сообщение, а Вы в свою очередь на выбор можете либо подтвердить отключение макросов, либо разрешить им выполняться. Если подобные сообщения системы безопасности покажутся вам слишком назойливыми, можно выбрать опцию "Включить все макросы", что не рекомендуется системой безопасности. Так вы ставите вашу систему под угрозу. Даже используя антивирусное программное обеспечение, не следует забывать о потенциальной опасности макровирусов. Теперь Вы знаете о плюсах и минусах разных уровней системы безопасности и поработав какое-то время с макросами, сможете выбрать для себя наиболее удобный из предложенных вариантов. Выбор уровня защиты зависит только от Вас. 

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

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

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

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

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

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

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

Dostup_k_proektu_2003

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

Parametryi-makrosov

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

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

Различия в используемых библиотеках

Еще одна ситуация при которой не работает макрос сопровождается появлением сообщения Can’t find project or library при этом тот же самый макрос может без нареканий работать на другом компьютере. В разных версиях приложений, в которые встроен VBA могут использоваться разные библиотеки, в связи с чем могут возникать подобные ошибки. Ошибку можно устранить, если в окне, которое следует за сообщением об ошибке снять флажки, установленные в пунктах, содержащих слово MISSING. Это окно можно вызвать самостоятельно выбрав в меню "Tools" пункт "References".

cant_find_project_or_library

Это окно также можно вызвать и самостоятельно, если в редакторе VB выбрать пункт меню Tools/References.