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

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

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

Автозапуск макроса при открытии книги в Excel

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

В первую очередь рекомендуем ознакомиться с основными тезисами и принципами работы в редакторе VBA.
Для начала перейдем в редактор Visual Basic, для этого в панели вкладок выбираем «Разработчик» -> «Visual Basic» или нажимаем комбинацию клавиш Alt + F11.

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


Ознакомимся с основными из них.

Запуск макроса при открытии книги

Workbook_Open — событие, происходящее при открытии книги.
Код макроса добавляется автоматически при выборе элемента в выпадающем списке:

Запуск макроса при закрытии книги

Подобно макросу для открытии книги существует аналогичный и для закрытия.
Workbook_BeforeClose — событие, соответственно, происходящее при закрытии книги.

Другие основные обрабатываемые события для книги:

  • Activate — событие, происходящее при активации книги (т.е. при переходе из другой активной книги в данную);
  • Deactivate — событие, происходящее при переходе в другую книгу;
  • SheetActivate — событие, происходящее при активации листа книги;
  • SheetDeactivate — событие, происходящее при переходе на другой лист книги;
  • SheetCalculate — событие, происходящее при пересчете формул на листе;
  • BeforePrint — событие, происходящее при печати книги;
  • BeforeSave — событие, происходящее при сохранении книги;
  • NewSheet — событие, происходящее при создании нового листа книги.

Запуск макроса при открытии листа

Workbook_SheetActivate — событие, происходящее при открытии любого листа в книге.

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


Worksheet_Activate — событие, происходящее при активации листа в книге.

Другие основные обрабатываемые события для листа:

  • Activate — событие, происходящее при активации листа;
  • BeforeDoubleClick — событие, происходящее по двойному щелчку по любой ячейке листа;
  • BeforeRightClick — событие, происходящее при нажатии правой кнопки мыши на любой ячейке листа;
  • Calculate — событие, происходящее при пересчете формул на листе;
  • Change — событие, происходящее при изменении значений ячеек на листе;
  • Deactivate — событие, происходящее при переходе на другой лист книги;
  • FollowHyperlink — событие, происходящее при переходе по гиперссылке на листе;
  • SelectionChange — событие, происходящее при изменении адреса выделенной области.

Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!

Поделиться с друзьями:
Поиск по сайту:

Похожие статьи:

  1. Сохранение листов книги в файл Excel
  2. Как создать макрос в Excel?
  3. Создание макросов в редакторе Visual Basic
  4. Как скрыть и показать скрытые листы в Excel?
  • ← Диаграмма водопад (waterfall chart) в Excel
  • Как сделать стрелки в ячейках в Excel? →

Комментарии (4)

А как настроить только на разовый запуск при первом открытии?

Куда нибудь что то надо записывать, при след. открытии код проверит тот запись

Используйте свойство CustomDocumentProperties для записи в декущий документ информации о его открытии. Например, так:

Excel works!

Excel работает за вас

  • Залогиниться
  • Зарегистрироваться

Забыли пароль?

Excel works!

  • Главная
    • Excel
    • Управление проектами
    • Книги
    • Прочее
    • Аналитика
  • Telegram-канал
  • Топ 5 статей
    • Онлайн Excel бесплатно. Office 365 online. Excel на Яндекс.Диске и Облаке Mail
    • Excel выделение цветом ячеек по условиям. Условное форматирование
    • Что делать если Excel не считает формулу?
    • Почему тормозит Excel? Большой размер файла Excel
    • Как удалить символ в ячейке Excel?
  • Автор
    • Обо мне
    • Сделанные работы
  • Заказать работу
  • Задать вопрос
  • Сказать «Спасибо!»
  • Скачать Excel
  • Обучение Excel
  • Карта сайта
    • Друзья сайта

Thanks for Visiting

  • Главная
    • Excel
    • Управление проектами
    • Книги
    • Прочее
    • Аналитика
  • Telegram-канал
  • Топ 5 статей
    • Онлайн Excel бесплатно. Office 365 online. Excel на Яндекс.Диске и Облаке Mail
    • Excel выделение цветом ячеек по условиям. Условное форматирование
    • Что делать если Excel не считает формулу?
    • Почему тормозит Excel? Большой размер файла Excel
    • Как удалить символ в ячейке Excel?
  • Автор
    • Обо мне
    • Сделанные работы
  • Заказать работу
  • Задать вопрос
  • Сказать «Спасибо!»
  • Скачать Excel
  • Обучение Excel
  • Карта сайта
    • Друзья сайта

Запуск макроса в Excel. Как запустить макрос при открытии файла?

Если вы часто пользуетесь макросами в MS Excel, то уверен, у вас не раз возникал вопрос: «Как быстро запустить написанный макрос?». Можно привязать горячую клавишу, например. Так же мы расскажем, как сделать так, чтобы макрос был доступен из любого файла Excel и можно было сделать быстрый запуск макроса в Excel.

Если вы не знаете о чем идет речь, то советую прочитать специальную статью . Если коротко, макрос — это список действий, записанных при помощи «языка» VBA. Очень удобно записать такую последовательность, если вы часто выполняете одни и те же операции (их можно записать специальным инструментом — макрорекордером ). Макрос будет выполнять их при нажатии одной кнопки .

Где посмотреть полившийся макрос и запустить его?

Самый удобный способ работы с макросами и связанными инструментами — вывести вкладку Разработчик на панель инструментов

Включается он несложно — заходим в левую, верхнюю кнопку Параметры Excel — раздел Основные — в правом окне ставим галочку Показывать вкладку Разработчик на ленте

Как мы видим, здесь большой выбор инструментов, от возможности зайти в Visual Basic до вставки объекта, например, кнопки.

Запуск макроса можно осуществить нажатием второй кнопки слева Макросы.

Появится окно для выбора макроса

Выбираем нужный — жмем выполнить.

Запуск макроса в Excel. Горячие клавиши

Открытие окна выбора макроса можно осуществить через горячую клавишу Alt + F8 . А зайти в окно редактирования макроса сочетанием Alt + F11.

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

В данным случае ctrl + Ё.

Автозапуск макроса при открытии книги

Зайдите в окно редактирования макроса Alt + F11 или нажмите кнопку Просмотр кода на панели Разработчик.

У вас откроется VBA. Ваш макрос (особенно записанный макрорекордером) будет храниться в отдельном отделе модулей в левой панели.

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

Копируйте тело макроса из правого окна (между Sub и End Sub)

Выберите в левой панели ЭтаКнига (двойным левым кликом).

В верхних панелях выбираем Workbook и признак включения макроса Open (открытие книги получается).

Копированный текст макроса из модуля вставляем между Private Sub и End Sub. Сохраняем. Закрываем VBA.

Готово! Запуск макроса будет происходить при открытии книги.

Не забудьте сохранить книгу с поддержкой макросов ( xlsm или xlsb ).

Дополнительные возможности запуска макроса при действии с книгой

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

  • Activate — при активации книги (при переходе из другого окна в эту книгу);
  • Deactivate — при переходе в другую книгу;
  • BeforeClose — перед закрытием книги;
  • BeforePrint — перед печатью книги;
  • BeforeSave — при сохранении книги;
  • NewSheet — при создании нового листа книги.

Дополнительные возможности запуска макроса при действии с листом

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

  • SheetActivate — при активации листа книги;
  • SheetDeactivate — при переходе на другой лист книги;
  • SheetCalculate — при пересчете формул на листе;
  • SheetBeforeDoubleClick — перед двойным кликом мыши;
  • SheetBeforeRightClick — перед кликом правой кнопкой мыши;
  • SheetChange — при изменение на листе

Если необходимо запустить макрос при изменении в ячейке — подробная инструкция есть в этой статье .

Запуск макроса по времени

Весьма частый случай на практике: вам нужно запускать один или несколько ваших макросов в заданное время или с определенной периодичностью. Например, у вас есть большой и тяжелый отчет, который обновляется полчаса и вы хотели бы запускать обновление за полчаса до вашего прихода на работу утром. Или у вас есть макрос, который должен делать автоматическую рассылку сотрудникам с заданной периодичностью. Или, работая со сводной таблицей, вы хотите, чтобы она обновлялась «на лету» каждые 10 секунд и т.д.

Читайте также  Как сравнить две таблицы в Excel в разных файлах?

Давайте разберемся с тем, какие в Excel и Windows есть возможности для реализации подобного.

Запуск макроса с заданной частотой

Для этого проще всего использовать встроенный в VBA метод Application.OnTime, который запускает заданный макрос в указанный момент времени. Давайте разберемся с этим на практическом примере.

Откройте редактор Visual Basic одноименной кнопкой на вкладке Разработчик (Developer) или сочетанием клавиш Alt + F11 , вставьте новый модуль через меню Insert — Module и скопируйте туда следующий код:

Давайте разберемся что здесь что.

Для начала, нам нужна переменная, где будет храниться время следующего запуска нашего макроса — я назвал её TimeToRun. Обратите внимание, что содержимое этой переменной должно быть доступно всем нашим последующим макросам, поэтому её надо сделать глобальной, т.е. объявить в самом начале модуля до первого Sub.

Дальше идет наш главный макрос MyMacro, который будет выполнять основную задачу — пересчитывать книгу с помощью метода Application.Calculate. Чтобы было нагляднее, я добавил на лист в ячейку А1 формулу =ТДАТА(), которая выводит дату и время — при пересчете её содержимое будет обновляться прямо у нас на глазах (только включите отображение секунд в формате ячейки). Для дополнительного веселья я добавил в макрос еще и команду заливки ячейки А1 случайно выбранным цветом (код цвета — это целое числов в диапазоне 0..56, которое генерит функция Rnd и округляет до целого числа функция Int).

Макрос NextRun добавляет к предыдущему значению TimeToRun еще 3 секунды и затем назначает следующий запуск главного макроса MyMacro на это новое время. Само-собой, на практике можно использовать любые другие нужные вам временные интервалы, задавая аргументы функции TimeValue в формате «чч:мм:сс».

Ну и, наконец, просто для удобства добавлены еще макросы запуска последовательности Start и её завершения Finish. В последнем из них для прерывания последовательности используется четвёртый аргумент метода OnTime равный False.

Итого, если запустить макрос Start, то вся эта карусель завертится, и мы увидим на листе вот такую картину:

Остановить последовательность можно, запустив, соответственно макрос Finish. Для удобства можно обоим макросам назначить сочетания клавиш, используя команду Макросы — Параметры на вкладке Разработчик (Developer — Macros — Options) .

Запуск макроса по расписанию

Само-собой, всё описанное выше возможно только в том случае, если у вас запущен Microsoft Excel и в нём открыт наш файл. Теперь давайте рассмотрим более сложный случай: нужно по заданному расписанию, например, каждый день в 5:00 запускать Excel, открывать в нем большой и сложный отчет и обновлять в нем все связи и запросы, чтобы к нашему приходу на работу он был уже готов :)

В такой ситуации лучше воспользоваться Планировщиком Windows — специально встроенной в любую версию Windows программой, которая умеет по расписанию выполнять заданные действия. По факту, вы уже используете его, сами того не зная, ведь ваш ПК регулярно проверяет обновления, качает новые антивирусные базы, синхронизирует облачные папки и т.д. — это всё работа Планировщика. Так что наша задача сводится к тому, чтобы добавить к уже имеющимся задачам ещё одну, которая будет запускать Excel и открывать в нём заданный файл. А мы с вами повесим наш макрос на событие Workbook_Open этого файла — и задача решена.

Хочу сразу предупредить, что для работы с Планировщиком, возможно, потребуются расширенные пользовательские права, поэтому, если вы не можете найти описанных ниже команд и функций у себя на рабочем компьютере в офисе — обратитесь за помощью к вашим IT-специалистам.

Запускаем Планировщик

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

  • Щелкнуть правой кнопкой мыши по кнопке Пуск и выбрать Управление компьютером (Computer management)
  • Выбрать в Панели управления: Администрирование — Планировщик заданий (Control Panel — Administrative Tools — Task Scheduler )
  • Выбрать в главном меню Пуск — Стандартные — Служебные — Планировщик заданий
  • Нажать сочетание клавиш Win + R , ввести taskschd.msc и нажать Enter

На экране должно появиться примерно такое окно (у меня англоязычная версия, но у вас может быть и русскоязычная):

Создаем задачу

Чтобы создать новую задачу с помощью простого пошагового мастера нажмем на ссылку Создать простую задачу (Create Basic Task) в правой панели.

На первом шаге мастера нужно ввести название и описание создаваемой задачи:

Жмем на кнопку Далее (Next) и на следующем шаге выбираем триггер — частоту запуска или событие, которое будет запускать нашу задачу (например, включение компьютера):

Если вы выбрали Ежедневно (Daily) , то на следующем шаге нужно будет выбрать конкретное время, дату начала последовательности и шаг (каждый 2-й день, 5-й день и т.д.):

Следующий шаг — выбираем действие — Запуск программы (Start a program) :

И, наконец, самое интересное — что именно нужно открывать:

В поле Программа или сценарий (Program/script) нужно ввести путь к Microsoft Excel как к программе, т.е. непосредственно к исполняемому файлу Excel. На разных компьютерах с разными версиями Windows и Office этот файл может лежать в разных папках, поэтому вот вам несколько способов, как можно узнать его местоположение:

    Щелкнуть правой кнопкой мыши по иконке (ярлычку) запуска Excel на рабочем столе или в панели задач и выбрать команду Свойства (Properties) , а затем в открывшемся окне скопировать путь из строки Target:

Открыть любую книгу Excel, затем открыть Диспетчер задач (Task Manager) нажатием Ctrl + Alt + Del и, щелкнув правой кнопкой мыши по строке Microsoft Excel, выбрать команду Свойства (Properties) . В открывшемся окне можно скопировать путь, не забыв потом дописать к нему обратный слэш и EXCEL.EXE в конце:

Открыть Excel, открыть редактор Visual Basic сочетанием клавиш Alt + F11 , открыть панель Immediate сочетанием Ctrl + G , ввести в неё команду:
? Application.Path
. и нажать на Enter


Cкопировать получившийся путь, не забыв потом дописать к нему обратный слэш и EXCEL.EXE в конце.

В поле Добавить аргументы (необязательно) (Add arguments (optional)) нужно вставить полный путь к книге с макросом, которую мы хотим открыть.

Когда всё ввели, то жмем Далее и затем Готово (Finish) . Задача должна добавиться в общий список:

Управление созданной задачей удобно осуществлять с помощью кнопок справа. Здесь можно протестировать задачу, запустив её немедленно (Run), не дожидаясь наступления заданного срока. Можно временно деактивировать задачу (Disable), чтобы она перестала выполняться на время, например, вашего отпуска. Ну, и изменить параметры (даты, время, имя файла) тоже всегда можно через кнопку Свойства (Properties) .

Добавляем макрос на открытие файла

Теперь осталось повесить в нашей книге запуск нужного нам макроса на событие открытия файла. Для этого откроем книгу и перейдем в редактор Visual Basic с помощью сочетания клавиш Alt + F11 или кнопки Visual Basic на вкладке Разработчик (Developer) . В открывшемся окне в левом верхнем углу нужно найти наш файл на дереве и двойным щелчком мыши открыть модуль ЭтаКнига (ThisWorkbook) .

Если у вас в редакторе Visual Basic не видно этого окна, то его можно открыть через меню View — Project Explorer.

В открывшемся окне модуля добавим обработчик события открытия книги, выбрав его из выпадающих списков в верхней части Workbook и Open, соответственно:

На экране должна появиться заготовка процедуры Workbook_Open, куда между строчками Private Sub и End Sub и нужно вставить те команды на VBA, которые должны автоматически выполняться при открытии этой книги Excel, когда её по расписанию откроет Планировщик. Вот несколько полезных вариантов для разгона:

    ThisWorkbook.RefreshAll — обновление всех внешних запросов к данным, запросов Power Query и сводных таблиц. Самый универсальный вариант. Только не забудьте разрешить по умолчанию подключения к внешним данным и обновление связей через Файл — Параметры — Центр управления безопасностью — Параметры центра управления безопасностью — Внешнее содержимое, иначе при открытии книги появится стандартное предупреждение и Excel, ничего не обновляя, будет ждать от вас благословления в виде нажатия на кнопку Включить содержимое (Enable content) :

  • ActiveWorkbook.Connections(«Имя_Соединения»).Refresh — обновление данных по соединению Имя_Соединения.
  • Sheets(«Лист5«).PivotTables(«СводнаяТаблица1«).PivotCache.Refresh — обновление отдельно взятой сводной таблицы с именем СводнаяТаблица1 на листе Лист5.
  • Application.Calculate — пересчет всех открытых книг Excel.
  • Application.CalculateFullRebuild — принудительный пересчет всех формул и перестроение всех зависимостей между ячейками во всех открытых книгах (равносильно повторному вводу всех формул).
  • Worksheets(«Отчет»).PrintOut — распечатать лист Отчет.
  • Call MyMacro — запустить макрос с именем MyMacro.
  • ThisWorkbook.Save — сохранить текущую книгу
  • ThisWorkbooks.SaveAs «D:АрхивОтчет » & Replace(Now, «:», «-«) & «.xlsx» — сохранить книгу в папку D:Архив под именем Отчет с добавлением к имени даты и времени.
  • Читайте также  Как открыть файл CSV на телефоне?

    Если вы хотите, чтобы макрос выполнялся только при открытии файла Планировщиком в 5:00, а не каждый раз при открытии книги пользователем в течение рабочего дня, то имеет смысл добавить проверку на время, например:

    Вот и всё. Не забудьте сохранить книгу в формате с поддержкой макросов (xlsm или xlsb) и можно смело закрывать Excel и отправляться домой, оставив компьютер включенным. В заданный момент (даже если ПК заблокирован) Планировщик запустит Excel и откроет в нём заданный файл, а наш макрос выполнит запрограммированные действия. А вы будете нежиться в постели, пока ваш тяжелый отчёт автоматически пересчитывается — красота! :)

    Канал в Telegram

    Вы здесь

    Автозапуск макроса при открытии или закрытии книги Excel

    Как запустить макрос при открытии или закрытии книги Excel?

    Иногда требуется выполнить некоторые действия или расчеты при запуске рабочей книги в Excel. В этой статье рассмотрим на примере простого запроса пароля как реализуется автозапуск макроса в Excel.
    Хочу сразу отметить, запуск макроса произойдет только в случае если в настройках безопасности (Сервис — Макрос — Безопасность) выбран низкий или средний уровень безопасности. При среднем уровне пользователь должен не отключать макросы при запросе.

    Итак, Excel запущен, книга создана, VBE открыт (Alt+F11).

    В окне Project Explorer (Ctrl+R) находим нашу книгу

    в моем случае это Книга2. Разворачиваем группу объектов «Microsoft Excel Objects» и находим объект «ЭтаКнига«

    кликаем по нему два раза. Перед нами откроется редактор кода объекта «ЭтаКнига«.
    Вы можете переименовать название объекта, выделив его и в окне Properties (F4) изменить свойство (Name).

    Теперь создадим форму в нашей книге (как это сделать читаем здесь). На форму добавим две кнопки (CommandButton) и TextBox. Примерный вид следующий:

    Эта форма будет появляться при открытии книги, в которую пользователю необходимо ввести пароль.
    Ввод пароля всегда скрывается звездочками, точками и т.д. Сделаем и мы тоже самое. Для этого выделите TextBox и в его свойствах (окно Properties) найдите пункт PasswordChar. В его значение вы можете поставить любой символ, эти символы будут отображаться при вводе. Не будем отступать от традиций, поставим знак «звездочки»

    Код для кнопки «Продолжить» следующий:

    Private Sub CommandButton1_Click()
    If TextBox1.Text = «123» Then UserForm1.Hide _
    Else MsgBox «Вы ввели неверный пароль! Попробуйте еще раз.»
    End Sub

    Пароль у нас «123», если введен верный пароль, то скрываем форму и продолжаем работать с книгой.

    Код для кнопки «Отмена»

    Private Sub CommandButton2_Click()
    ThisWorkbook.Close False
    End Sub

    ThisWorkbook — ключевое слово. Дословно «Эта рабочая книга» или «Текущая рабочая книга»
    Close — команда на закрытие нашей книги. Параметр False указывает на закрытие книги без сохранения.
    Параметр false является необязательным. Если этот параметр не указать, то в случае внесения изменений в книгу отобразится диалог:

    Все. Форму запрограммировали. Осталось ее автоматически запустить. Для этого перейдем в открытый ранее редактор объекта «ЭтаКнига» и добавим туда следующую процедуру:

    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub

    Workbook_Open – событие, происходящее при открытии рабочей книги. Собственно в этой процедуре и открывается наша форма (UserForm1.Show), происходит запуск макроса, или выполняется любой другой код. Процедура Workbook_Open сработает только в объекте «ЭтаКнига».
    Сохраните книгу, закройте и попробуйте ее открыть.

    Как выполнить макрос при закрытии книги Excel?

    Событие, вызываемое при закрытии книги, так же как и открытие, относится к объекту «ЭтаКнига» (workbook). Открываем редактор кода этого объекта. Теперь выберите в выпадающем списке объект «Workbook» затем в списке доступных событий выберите BeforeClose — событие, вызываемое перед закрытием книги:

    Событий объекта книги полно: событие при создании листа, событие при активации книги и т.д.
    Итак, после выбора BeforeClose будет создана процедура:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    End Sub

    Добавьте в эту процедуру например, строчку вызова сообщения:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    MsgBox «Ой! Меня закрывают!»
    End Sub

    Событие BeforeClose имеет параметр Cancel логического типа, который по умолчанию имеет значение False. Если в этот параметр передать значение True, то книгу невозможно будет закрыть:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    MsgBox «Меня закрыть невозможно!»
    Cancel = True
    End Sub

    На этом все. Рабочий вариант, рассмотренный в данной статье, прикреплен ниже. В последующих статьях еще не однократно будет затронут объект WorkBook и его события, ну а пока — пока!

    Как в офисе.

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

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

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

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

    Для MS Excel 2007 и 2010

    • Нажмите на кнопку Microsoft Office слева вверху.
    • В нижней части появившегося окна нажмите кнопку Параметры Excel

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

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

    • Закройте ваш файл и откройте его заново, чтобы изменения вступили в силу.

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

    Для MS Excel 2000 и 2003

    • Зайдите во вкладку Сервис (или Инструменты)
    • В выпадающем списке выберите пункт Макрос -> Безопасность

    • В открывшемся окне выберите уровень безопасности «Средняя. Решение о запуске потенциально опасных макросов принимается пользователем»

    • Закройте ваш файл и откройте его заново, чтобы изменения вступили в силу.

    Теперь при открытии файла программа будет спрашивать вас, нужно ли отключить макросы

    Если вы не пользуетесь макросами, установите уровень безопасности «Высокая. Разрешается запуск только подписанных макросов из надежных источников. Неподписанные макросы отключаются автоматически». Либо вы можете оставить уровень безопасности «Средняя», но в таком случае никогда не нажимайте кнопку «Не отключать макросы» в окне «Предупреждение системы безопасности», когда вы работаете с файлами из ненадежных источников.

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

    Поделиться в соц. сетях

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

    Если макрос записан и сохранен с именем Auto open, он будет запускаться при каждом открытии содержащей его книги. Другим способом автоматического запуска макроса при открытии книги является написание процедуры на языке VBA в событии Open книги с помощью редактора VBA.

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

    Создание макроса Auto open:

    1. Если вкладка Разработчик недоступна, выполните указанные ниже действия для ее отображения:

    a. На вкладке Файл выберите команду Параметры, а затем — категорию Настройка ленты.

    b. В списке Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.

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

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

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

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

    • 3. Для сохранения макроса с конкретной книгой сначала откройте эту книгу.
    • 4. На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
    • 5. В поле Имя макроса введите Auto open.
    • 6. В списке Сохранить в выберите книгу, в которой нужно сохранить макрос.
    • 7. Нажмите кнопку ОК.
    • 8. Выполните действия, которые нужно записать.
    • 9. На вкладке Разработчик в группе Код нажмите кнопку Остановить запись.
    Читайте также  Чем можно редактировать файлы Visio?

    Если на шаге 6 было выбрано сохранение макроса в Эта книга или Новая книга, сохраните или переместите книгу в одну из папок XLStart.

    Запись макроса Auto_open имеет следующие ограничения:

    • • Если книга, в которой сохраняется макрос Авто_от-крыть, уже содержит процедуру на языке VBA в событии Open, эта процедура для события Open заменит все действия макроса Автооткрыть.
    • • При открытии книги с помощью метода Open макрос Auto open игнорируется.
    • • Макрос Auto_open запускается перед открытием других книг. Поэтому при записи действий, которые нужно выполнить в книге по умолчанию «Книга1» или в книге, загруженной из папки XLStart, такие действия макроса Auto_open при запуске приложения Excel выполнены не будут, поскольку запуск этого макроса происходит перед открытием книги по умолчанию и новой книги.

    Чтобы предотвратить автоматическое выполнение макроса Auto open при запуске Microsoft Excel, во время запуска удерживайте нажатой клавишу Shift.

    Создание процедуры для обработки события Open книги. Рассмотрим пример обработки события Open для запуска макроса при открытии книги.

    • 1. Откройте или создайте книгу, в которую нужно добавить макрос.
    • 2. На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
    • 3. В окне обозревателя проектов щелкните правой кнопкой мыши объект ЭтаКнига, а затем в контекстном меню выберите команду View Code (просмотр кода).
    • 4. В списке объектов, расположенном над окном кода, выберите пункт Workbook.

    Будет автоматически создана пустая процедура для события Open, похожая на приведенную ниже.

    Private Sub Workbook_Open()

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

    Private Sub Workbook_Open()

    Worksheets(“Sheetl”).Range(“Al”). Value = Date End Sub

    • 6. Перейдите в окно приложения Excel и сохраните данную книгу как книгу с поддержкой макросов (.XLSM).
    • 7. Закройте и снова откройте книгу. При повторном открытии файла запускается процедура WorkbookOpen, отображающая в окне сообщения текущую дату.
    • 8. В окне сообщения нажмите кнопку ОК.

    Заметьте, что ячейка А1 листа 1 также содержит дату, являющуюся результатом запуска процедуры WorkbookOpen.

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

    Excel помогает вам в этом, блокируя программный код при открытии рабочей книги.

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

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

    • 1. Откройте вкладку Файл.
    • 2. В разделе Сведения в области Предупреждение системы безопасности на кнопке Включить содержимое щелкните стрелку вниз.
    • 3. Выберите элемент Дополнительные параметры.
    • 4. В окне диалога Параметры безопасности Microsoft Office выберите команду Включить содержимое для этого сеанса для каждого макроса.
    • 5. Нажмите кнопку ОК.

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

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

    • 1. Откройте вкладку Файл.
    • 2. В разделе Справка выберите элемент Параметры. Откроется диалоговое окно Параметры.
    • 3. Перейдите в раздел Центр управления безопасностью и нажмите кнопку Параметры центра управления безопасностью.
    • 4. В центре управления безопасностью щелкните элемент Параметры макросов.
    • 5. Выберите нужный параметр.

    Рис. 141. Выбор пфаметров макросов

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

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

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

    Добавление надежного расположения. Чтобы добавить надежное расположение, выполните следующие действия:

    • 1. Откройте вкладку Файл.
    • 2. В меню Справка выберите пункт Параметры; отобразится диалоговое окно Параметры.
    • 3. Перейдите в раздел Центр управления безопасностью и нажмите кнопку Параметры центра управления безопасностью.
    • 4. В Центре управления безопасностью щелкните пункт Надежные расположения.
    • 5. Нажмите кнопку Добавить новое расположение; появится окно диалога Надежные расположения.
    • 6. Нажмите кнопку Обзор, найдите и укажите папку, затем нажмите кнопку ОК.

    Удаление надежного расположения. Чтобы удалить надежное расположение, выполните следующие действия:

    • 1. Откройте вкладку Файл.
    • 2. В меню Справка выберите пункт Параметры; отобразится диалоговое окно Параметры.
    • 3. Перейдите в раздел Центр управления безопасностью и нажмите кнопку Параметры центра управления безопасностью.
    • 4. В Центре управления безопасностью щелкните пункт Надежные расположения.
    • 5. Укажите расположение, которое необходимо удалить, и выберите команду Удалить.
    • 6. Нажмите кнопку ОК.

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

    • 1. Откройте вкладку Файл.
    • 2. В меню Справка выберите пункт Параметры; отобразится диалоговое окно Параметры.
    • 3. Перейдите в раздел Центр управления безопасностью и нажмите кнопку Параметры центра управления безопасностью.
    • 4. В Центре управления безопасностью щелкните пункт Надежные расположения.
    • 5. В списке Надежные расположения укажите расположение и выберите команду Изменить.
    • 6. Внесите необходимые изменения.
    • 7. Нажмите кнопку ОК.
    Борис Аладышкин/ автор статьи

    Приветствую! Я являюсь руководителем данного проекта и занимаюсь его наполнением. Здесь я стараюсь собирать и публиковать максимально полный и интересный контент на темы связанные с современными технологиями и программным обеспечением. Уверен вы найдете для себя немало полезной информации. С уважением, Борис Аладышкин.

    Понравилась статья? Поделиться с друзьями:
    Itsovet61.ru
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: