Как запускать макрос при открытии файла excel

Обновлено: 08.07.2024

Предположим, Вы скачали файл с данного сайта с примером макроса, открываете файл, но макросы в нем не работают! Как такое может быть? Неужели автор сайта выложил неработающий пример и не знает об этом? И тем более как может случиться такое, что Вы перенесли со своего ПК на другой ПК файл с рабочими макросами на флешке, запускаете, а он не работает. Почему? Вроде все правильно делаете, да ведь и у Вас работает на ПК. И начинает закрадываться мысль: "А чем же этот ПК и Excel на нем такие особенные?" . А ответ может быть прост - перед выполнением макроса не было разрешено выполнение этих самых макросов. Да, в большинстве случаев по умолчанию выполнение макросов в Excel отключено. И их надо включить. Для этого:

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов "Низкий"
  • Excel 2007:
    Кнопка Офис-Параметры Excel (Excel Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Разрешить все макросы (Enable All Macros)
  • Excel 2010-2016:
    Файл (File) -Параметры (Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Разрешить все макросы (Enable All Macros)

Если макросы уже включены, но некоторые макросы отказываются работать (как правило те, которые записаны в модулях листов и книг и запускаются при наступлении определенного события - Worksheet_SelectionChange (выделение ячеек), Worksheet_Change (изменение значений ячеек) и т.п.), то скорее всего когда-то вы выполнили какой-нибудь макрос и он отключил отслеживание событий. Тогда надо в любую активную книгу добавить модуль(переходим в редактор VBA( Alt + F11 ) -Insert -Module), вставить в него приведенный ниже код и запустить:

Sub Reset_Events() Application.EnableEvents = True End Sub

чтобы запустить(выполнить) данный макрос макрос необходимо установить курсор в любое место между Sub и End Sub и нажать клавишу F5 .

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

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

Сведения о создании макросов см. в статье Краткое руководство: создание макроса.

Если вам нужно узнать, как использовать макрос на компьютере с Windows S, см. Office в Windows 10 S.

Что такое макрос, кто их создает и в чем заключается угроза для безопасности?

Макросы служат для автоматизации часто выполняемых задач, что позволяет сэкономить время за счет сокращения объема работы с клавиатурой и мышью. Многие из них созданы с использованием языка Visual Basic для приложений (VBA). Однако некоторые макросы представляют угрозу безопасности. Макрос часто используется злоумышленниками для бесшумной установки вредоносных программ, например вирусов, на компьютер или в сеть организации.

Включить макрос только для текущего сеанса

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

Откройте вкладку Файл.

В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.

Выберите элемент Дополнительные параметры .

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

Изменение параметров макросов в центре управления безопасностью

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

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

Откройте вкладку Файл.

Щелкните Параметры.

Затем выберите пункты Центр управления безопасностью и Параметры центра управления безопасностью.

В центре управления безопасностью щелкните элемент Параметры макросов.

Область "Параметры макроса" центра управления безопасностью

Сделайте нужные выборки и нажмите кнопку ОК.

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

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

В Excel этот параметр отключение макроса VBA без уведомления и применяется только к макросам VBA.

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

В Excel этот параметр отключение макроса VBA с уведомлением и применяется только к макросам VBA.

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

В Excel этот параметр отключение макроса VBA за исключением макроов с цифровой подписью и применяется только к макросам VBA.

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

В Excel этот параметр включает макрос VBA (не рекомендуется, советуем запускать потенциально опасный код), и он применяется только к макросам VBA.

Excel также естьExcel включить макросExcel 4.0при включенном макросах VBA. Если установить этот параметр, все вышеперечисленные параметры макроса VBA также будут применяться Excel 4.0 (XLM).

Если этот снимок не был выбран, макрос XLM отключается без уведомления.

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

Примечание: В Microsoft Publisher и Microsoft Access параметр Доверять доступ к объектной модели проектов VBA отсутствует.

Существует несколько способов запуска макроса в Microsoft Excel. Макрос — это действие или набор действий, с помощью которых можно автоматизировать различные задачи. Макрос записывется на Visual Basic для приложений программирования. Макрос всегда можно запустить, нажав кнопку Макрос на вкладке Разработчик на ленте. В зависимости от того, как макрос назначен для запуска, его также можно запустить, нажав сочетание клавиш сочетание клавиш, нажав кнопку на панели быстрого доступа или в настраиваемой группе на ленте либо щелкнув объект, рисунок или элемент управления. Кроме того, макрос можно запускать автоматически при запуске книги.

Перед запуском макроса

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

Чтобы Windows, перейдите в меню Параметры > >Настроить ленту.

Для Macперейдите на Excel > параметры. >ленты & панели инструментов.

Затем в разделе Настройка ленты в разделе Основныевкладки, в разделе Разработчик, нажмите кнопку ОК.

Откройте книгу, содержащую нужный макрос.

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

В поле Имя макроса выберите макрос, который вы хотите запустить, и нажмите кнопку Выполнить.

У вас также есть другие варианты:

Параметры: добавление сочетания клавиш или описания макроса.

Шаг. Откроется Visual Basic редактора в первой строке макроса. Нажатие F8 позволит вам по одной строке пролиться между кодами макроса.

Изменить. Откроется редактор Visual Basic и вы сможете при необходимости изменить код макроса. После внесения изменений можно нажать F5, чтобы запустить макрос из редактора.

Вы можете добавить сочетание клавиш в макрос при его записи, а также добавить его к существующему макросу:

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

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

Откроется диалоговое окно Параметры макроса.

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

Для Windowsклавиша для букв в нижнем регистре — CTRL+letter. Для букв верхнего регистра это CTRL+SHIFT+Letter.

Для Macдля букв в нижнем регистре есть клавиши OPTION+COMMAND+LETTER,но клавиши CTRL+letter также будут работать. Для букв верхнего регистра это CTRL+SHIFT+Letter.

Будьте внимательны при назначении ярлыков, так как они будут переопределять все эквивалентные стандартные Excel, пока открыта книга с макросом. Например, если назначить макрос CTRL+Z,вы потеряете возможность отменить. В связи с этим обычно лучше использовать клавиши CTRL+SHIFT+БУКВА С верхнего регистра, например CTRL+SHIFT+Z, для которых в Excel нет эквивалентных Excel.

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

Введите описание макроса в поле Описание.

Запуск макроса нажатием кнопки на панели быстрого доступа

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

Запуск макроса с помощью кнопки в настраиваемой группе на ленте

Вы можете создать пользовательскую группу, которая появится на вкладке ленты, а затем назначить макрос кнопке в этой группе. Например, можно добавить настраиваемую группу "Мои макросы" на вкладку Разработчик, а затем добавить в новую группу макрос (который отображается как кнопка). Для этого см. назначение макроса кнопке.

Запуск макроса путем щелчка области графического объекта

Запуск макроса путем щелчка области графического объекта

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

На компьютере вставьте графический объект, например рисунок, или нарисуйте фигуру. Распространенный сценарий — нарисовать фигуру Скруглённый прямоугольник и отформатировали ее так, чтобы она выглядела как кнопка.

Чтобы узнать о вставке графического объекта, см. добавление, изменение и удаление фигур.

Щелкните правой кнопкой мыши созданный хот-спот и выберите пункт Назначить макрос.

Выполните одно из указанных ниже действий.

Чтобы назначить существующий макрос графическому объекту, дважды щелкните макрос или введите его имя в поле Имя макроса.

Чтобы записать новый макрос для назначения выбранному графическому объекту, нажмите кнопку Запись ,в диалоговом окне Запись макроса введите имя макроса и нажмите кнопку ОК, чтобы начать запись макроса. Завершив запись макроса, нажмите кнопку Остановить на вкладке Разработчик в группе Код.

Совет: Вы также можете нажать в левой части панели состояния.

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

На вкладке Разработчик нажмите кнопку Visual Basic, чтобы запустить редактор Visual Basic(VBE). Перейдите Project проводнике, чтобы найти модуль, содержащий макрос, который вы хотите запустить, и откройте его. Все макрос в этом модуле будут перечислены в области справа. Выберите макрос, который вы хотите запустить, разместив курсор в любом месте макроса и нажимая F5или выбрав в меню пункт Выполнить > Макрос.

Настройка автоматического запуска макроса при открытии книги

Создайте Workbook_Open события.

В следующем примере событие Open используется для запуска макроса при открытии книги.

Откройте или создайте книгу, в которую нужно добавить макрос.

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

В окне Project проводника щелкните правой кнопкой мыши объект ThisWorkbook и выберите просмотр кода.

Совет: Если окно Project проводника не отображается, в меню Вид выберите пункт Project проводник.

В списке Объект над окном Код выберите книга.

При этом автоматически создается пустая процедура для события Open, например:

Private Sub Workbook_Open()

Добавьте в процедуру следующие строки кода:

Private Sub Workbook_Open()Листы даты
MsgBox("Лист1").
Диапазон("A1"). Value = Date
End Sub

Переключитесь на приложение Excel и сохраните данную книгу как книгу с поддержкой макросов (.XLSM).

Примечание: Ячейка A1 на листе "Лист1" также содержит дату в результате Workbook_Open процедуры.

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

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

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

Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Дополнительные сведения см. в статье Отображение вкладки "Разработчик".

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

Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.

Откройте вкладку Разработчик и щелкните элемент Visual Basic.

В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook. Если вы не видите обозреватель Project, перейдите в > Project проводникаили нажмите CTRL+R.

В окне модуля, которое открывается справа, вставьте следующий код:

В конце и подмножите записи в процедуру Sub.

Закройте редактор Visual Basic (вам не нужно ничего сохранять).

Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.

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

Прежде чем начать, убедитесь, что на ленте доступна вкладка Разработчик. Для этого:

В меню выберите пункт Параметры Excel >. >ленты & панели инструментов.

В категории Настройка ленты в списке Основные вкладки выберите вариант Разработчик.

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

Важно: Код VBA нельзя отменить, поэтому проверьте код в пустой книге или копии существующей книги. Если код не работает, вы можете закрыть книгу без сохранения изменений.

Откройте вкладку Разработчик и щелкните элемент Visual Basic.

В обозревателе VBA Project слева разверните папку VBA Project книги, а затем дважды щелкните модуль ThisWorkbook.

В окне модуля, которое открывается справа, вставьте следующий код:

В конце и подмножите записи в процедуру Sub.

Закройте редактор Visual Basic (вам не нужно ничего сохранять).

Сохраните книгу как книгу Excel Macro-Enabled (XLSM)и закроем ее.

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

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

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

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