Почему не запускается макрос
Перейти к содержимому

Почему не запускается макрос

  • автор:

Ошибка макроса

Если в выполняемом макросе произошел сбой, отображается сообщение об ошибке макроса.

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

  • Аргумент содержит недопустимое значение. Как правило, причина ошибок такого рода — попытка обратиться к несуществующему объекту, например Книга(5), когда открыты только три книги.
  • Указанный метод нельзя использовать в данном контексте. Например, некоторые методы объекта Range требуют, чтобы диапазон содержал данные. Если в диапазоне их нет, метод выдает ошибку.
  • Произошла внешняя ошибка, например не удалось выполнить чтение или запись файла.
  • (Эта проблема не относится к Mac) Метод или свойство нельзя использовать с текущими параметрами безопасности. Например, свойства и методы объекта VBE для работы с кодом на языке Visual Basic для приложений (VBA), хранящимся в документах Microsoft Office, по умолчанию недоступны. Чтобы включить доверенный доступ к проектам Visual Basic, выполните указанные ниже действия.
  • Включите вкладку Разработчик на ленте. Дополнительные сведения см. в разделе Показать вкладку Разработчик .
  • На вкладке Разработчик в группе Код выберите элемент Безопасность макросов.

Изменение параметров безопасности макросов в Excel

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

Дополнительные сведения о параметрах безопасности макросов в документах Microsoft Office см. в статье Включение и отключение макросов в файлах Office.

Параметры безопасности макросов и их действие

Ниже приведен список различных параметров безопасности макросов. Если установлена антивирусная программа, работающая с Microsoft 365, то помимо всех параметров книга, содержащая макросы, перед открытием проверяется также на наличие известных вирусов.

  • Отключить все макросы без уведомления. Выберите этот параметр, если не доверяете макросам. Все макросы в документе и предупреждения о безопасности макросов отключаются. Если у вас есть документы, содержащие неподписанные макросы, которым вы доверяете, эти документы можно поместить в надежное расположение. Документы из надежных расположений разрешается выполнять без проверки системой центра управления безопасностью.
  • Отключить все макросы с уведомлением. Этот параметр задан по умолчанию. Выберите этот вариант, если хотите отключить макросы, но при этом получать предупреждения о безопасности, если макросы есть. Так вы можете в каждом конкретном случае решать, стоит ли включать эти макросы.
  • Отключить все макросы кроме макросов с цифровой подписью. Этот параметр подобен параметру Отключить все макросы с уведомлением, не считая того, что макрос с цифровой подписью надежного издателя может выполняться, если вы уже доверяете этому издателю. Если издатель не считается надежным, вы получаете уведомление. Так вы можете выбрать, следует ли включить эти подписанные макросы и выразить доверие издателю. Все макросы без подписи отключаются без уведомления.
  • Включить все макросы (не рекомендуется, возможен запуск опасной программы). Выберите этот параметр, чтобы разрешить выполнение всех макросов. В таком случае ваш компьютер становится уязвимым для потенциально опасного кода, поэтому этот вариант не рекомендуется.
  • Доверять доступ к объектной модели проектов VBA Этот параметр предназначен для разработчиков и используется для намеренной блокировки или разрешения программного доступа к объектной модели VBA из любого клиента службы автоматизации. Другими словами, он предоставляет возможность безопасности для кода, написанного для автоматизации программы Office и программного управления средой и объектной моделью Microsoft Visual Basic для приложений (VBA). Это параметр для каждого пользователя и приложения, который по умолчанию запрещает доступ. Этот параметр безопасности усложняет для несанкционированных программ создание самовоспроизводяющегося кода, который может нанести вред системам конечных пользователей. Чтобы любой клиент службы автоматизации мог получить доступ к объектной модели VBA программным способом, пользователь, выполняя код, должен явно предоставить доступ. Чтобы включить доступ, выберите поле проверка.

Использование цифровых подписей

В Office используется технология Microsoft Authenticode, позволяющая создателям макросов добавлять цифровую подпись в файл или проект макроса. Сертификат, используемый для создания подписи, подтверждает, что макрос или документ создан автором подписи, а подпись подтверждает, что макрос или документ не был изменен.

Установив свой цифровой сертификат, вы можете подписывать файлы и макросы.

Получение цифрового сертификата для подписания

Цифровой сертификат можно получить в коммерческом центре сертификации (ЦС) или у администратора безопасности локальной сети либо ИТ-специалиста.

Дополнительные сведения о центрах сертификации, обслуживающих продукты Майкрософт, см. в списке участников программы корневых сертификатов Майкрософт.

Создание своего самозаверяющего цифрового сертификата

С помощью программы Selfcert.exe вы можете создать свой самозаверяющий сертификат.

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

Дополнительные сведения о добавлении цифровой подписи к макросам см. в статье Подписание макроса.

Изменение параметров безопасности макросов

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

Вкладка

    На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.

Примечание: Все изменения, внесенные в категории Параметры макросов в Excel, применяются только к Excel и не влияют на другие приложения Microsoft Office.

Доступ к центру управления безопасностью также можно получить из окна «Параметры Excel». Для этого щелкните Параметры (версии Excel 2010–2016) или Кнопки Microsoft Office

(Excel 2007), а затем щелкните Центр управления безопасностью > параметры центра управления безопасностью > Параметры макросов.

Дополнительные сведения о безопасности макросов см. в следующих статьях:

  • Добавление, удаление и изменение надежного расположения
  • Добавление, удаление и просмотр надежного издателя
  • Включение и отключение макросов в файлах Office
  • Включение и отключение предупреждений системы безопасности о ссылках и файлах с подозрительных веб-сайтов
  • Просмотр параметров в центре управления безопасностью

Устранение неполадок

Не удается изменить параметры безопасности макросов

Некоторые пользователи не могут изменять параметры центра управления безопасностью из-за групповых политик безопасности в их организациях. В таких случаях необходимо обратиться к ИТ-администратору организации.

Что случилось с параметрами безопасности «Очень высокий», «Высокий», «Средний» и «Низкий»?

Параметр Excel 2003

Эквивалент в Excel 2007/2010/2013/2016

Дополнительные сведения

Отключить все макросы без уведомления

В Excel 2003 макросы VBA выполняются только при условии, что выбран параметр «Доверять всем установленным надстройкам и шаблонам» (в Excel 2003 на вкладке «Надежные издатели» в диалоговом окне «Безопасность») и макросы (с подписью или без) хранятся в определенной надежной папке на жестком диске пользователя.

Если эти условия не соблюдены, то при использовании параметра «Очень высокий» макросы VBA не выполняются в Excel 2003.

Отключить все макросы кроме макросов с цифровой подписью

В Excel 2003 могут выполняться только исполняемые файлы (EXE или COM), подписанные утвержденным надежным источником (то есть имеющие сертификат). В противном случае все исполняемые модули, связанные с документами или внедренные в них, автоматически отключаются без предупреждения, когда пользователь открывает документы.

При установке всех приложений Office 2003 по умолчанию задается параметр «Высокий».

Отключить все макросы с уведомлением

В Excel 2003 пользователям при открытии документа предлагается включить или отключить исполняемые модули. На этом уровне необходимо принять сертификат для каждого исполняемого модуля, добавив сертификат в соответствующий сегмент реестра на компьютере под управлением Windows.

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

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

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

Дополнительные сведения

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

Не работают макросы в Excel: кто виноват и что делать?

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

Причины

Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:

  1. Функция отключена.
  2. Отключение отслеживания событий.
  3. Устаревшая операционная система.
  4. Несоответствие разработчика пакета офисных приложений.
  5. Устаревшая версия Майкрософт Офис.
  6. Неактивированная версия Excel.
  7. Заблокированный файл.
  8. Неправильные настройки безопасности.
  9. Отсутствие необходимой библиотеки и т. д.

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

Что делать

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

Включите опцию

Первое, что необходимо сделать — включить функцию для обеспечения ее работоспособности. Здесь многое зависит от версии Эксель.

Если не работают макросы в Excel 2003, сделайте следующие шаги:

  1. Войдите в «Сервис».
  2. Перейдите в раздел «Безопасность».
  3. Кликните «Уровень макросов «Низкий».

В случае, когда не работают макросы в Excel 2007, включите их следующим образом:

  1. Жмите на кнопку «Офис».
  2. Войдите в параметры Excel.
  3. Кликните на «Центр управления безопасности».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Жмите на «Параметры макросов».
  6. Кликните на «Разрешить все …».

В ситуации, когда не работают макросы в Excel 2016, сделайте следующие шаги:

  1. Войдите в раздел «Файл».
  2. Кликните на кнопку «Параметры».
  3. Зайдите в «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры …».
  6. Жмите на «Разрешить все …».

После внесения изменений параметра безопасности перезапустите приложение Excel, а именно закройте его полностью и откройте снова. Лишь после этого изменения вступают в силу.

Добавьте нужный модуль в книгу

Бывают ситуации, когда макросы включены, но не работают в Excel из-за отключения каким-либо элементом отслеживания событий. В таком случае сделайте следующее:

  1. Перейдите в редактор VBA с помощью клавиш Alt+F11.
  2. Вставьте указанный ниже код.
  1. Для выполнения кода поставьте курсор в любой точке между началом и концом.
  2. Кликните F5.

Проверьте операционную систему

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

Обратите внимание на разработчика

Если в Экселе не работают макросы, причиной может быть другой разработчик. Так, пользователи Excel часто применяют OpenOffice или LibreOffice. Эти пакеты созданы на разных языках программирования, которые имеют индивидуальные особенности. Так, если надстройки написаны на Visual Basic for Application, он может не работать в указанных выше офисных приложениях. Вот почему необходимо уточнять, для какого пакета создан макрос / надстройка.

Проверьте версию Майкрософт Офис

В Макрософт Офис 2003 применяются надстройки xla для Excel. В современных версиях расширение поменялось на xlam. Если ставить макросы старого типа в приложения Офис 2007 и больше, никаких трудностей не происходит. Если же вы попытаетесь поставить новую надстройку на старую версию Excel, она зачастую не работает. Вот почему важно обратить внимание на этот параметр при выборе.

Убедитесь в наличии пакета VBA

Одной из причин, почему не запускается макрос в Excel, может быть отсутствие пакета VBA. Для успешного запуска надстройки необходимо, чтобы этот пакет был установлен. Иногда он уже установлен в Офис, но так происходит не всегда. Для проверки жмите комбинацию на Alt+F11. Если после этого появляется Visual Basic, компонент можно считать установленным. В ином случае его нужно поставить. Для этого:

  • Зайдите в «Пуск», а далее «Панель управления / Программы и компоненты».

  • Выберите программу Майкрософт Офис.
  • Жмите на кнопку «Изменить».

  • Запустить файл установки Setup.exe.
  • Кликните на «Добавить или удалить компоненты».
  • Выберите в списке Visual Basic и установите его.

Активируйте Офис

Если в Excel 2007 не работает кнопка «макросы», причиной может быть отсутствие активации приложения. Для этого жмите на кнопку «Активировать» и следуйте инструкции. В большинстве случаев такая опция является платной.

Снимите блокировку файла

Учтите, что документ, полученный с другого ПК / ноутбука, может заблокироваться. Для разблокировки файла нужно нажать ПКМ и в разделе «Общие» кликнуть на «Разблокировать».

Проверьте библиотеки

В случае, когда параметры макросов не активны в Excel, причиной может быть появление ошибки «Can’t find project or library». При этом, надстройка работает на другом ПК / ноутбуке, а здесь возникают проблемы. Ошибку легко устранить, если в окне, которое идет за сообщением об ошибке, снять отметки в полях Missing. Для вызова окна можно выбрать пункт меню Tools / References.

Проверьте настройки безопасности

В ситуации, когда не работают макросы в Excel, можно добавить надежные расположения или настроить доступ к объектной модели VBA. Для этого в Офис 2007 необходимо сделать следующее:

  1. Войдите в Меню
  2. Кликните на пункт «Параметры».
  3. Жмите на «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры макросов» и «Доверять доступ к объектной модели проектов».

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

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

Почему не запускается макрос

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *