Progress-servis55.ru

Новости из мира ПК
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Автозапуск макроса при открытии 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!

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

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

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

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

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

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

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

Читать еще:  Fastreport excel export

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

Прежде чем начать, убедитесь, что отображаются вкладки » Разработчик » на ленте. Подробнее читайте вкладку «Разработчик».

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

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

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

В левой части Проекта VBA разверните папку Проекта VBA для книги, а затем дважды щелкните модуль ЭтаКнига . Если вы не видите окно проекта, можно перейти в режим > Окно проекта или нажмите клавиши Ctrl + R.

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

Вставьте код записанные в подпрограмме между строками Sub и End Sub.

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

Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.

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

Прежде чем начать, убедитесь, что отображаются вкладки » Разработчик » на ленте. Это можно сделать:

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

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

Нажмите кнопку Сохранить.

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

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

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

В левой части Проекта VBA разверните папку Проекта VBA для книги, а затем дважды щелкните модуль ЭтаКнига .

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

Вставьте код записанные в подпрограмме между строками Sub и End Sub.

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

Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.

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

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

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Канал в Telegram

Вы здесь

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

Как запустить макрос при открытии или закрытии книги 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

Читать еще:  Пользовательский автофильтр в excel

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

Автозапуск файла при открытии Excel

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

Способов добавить файл в автозагрузку Excel достаточно много, поэтому мы рассмотрим только самые основные:

  • открытие файлов из папки автозапуска
  • подключение файла как надстройки

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

При установке Excel создаётся специальный каталог XLSTART, все файлы из которого автоматически открываются в Excel при его запуске

Путь к этой папке можно получить макросом из свойства Application.StartupPath:

На моём компьютере (под управлением Windows XP), эта папка расположена по пути
C:Documents and Settings Application DataMicrosoftExcelXLSTART,
для других версий OC путь может отличаться

Достаточно в эту папку перетащить ваш файл (или файлы, причем неважно какие — книги Excel, текстовые файлы, CSV и т.п.) — и при запуске приложения все эти файлы будут открыты в Excel

Кстати, сами файлы перемещать в эту папку необязательно — достаточно поместить в папку автозапуска ЯРЛЫКИ на эти файлы
(например, ярлык можно создать путем перетаскавания мышом файла в папку, удерживая клавишу Alt)

Хочу обратить ваше внимание, что вы можете в настройках Excel указать ещё одну папку автозапуска, файлы из которой также будут открываться автоматическе при запуске Excel

Сделать это можно, если указать путь к вашей папке в параметре «Каталог автозагрузки«:
(в Excel 2003 меню Сервис — Параметры, вкладка Общие)

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

Какие же ещё способы предоставляет нам программа?

Подключение надстройки Excel

Эта возможность предоставляется только для книг Excel, сохранённых как надстройка (с расширением XLA)

Если у нас есть такая надстройка, и мы хотим, чтобы она запускалась каждый раз при открытии Excel, мы можем её подключить через меню Сервис — Надстройки (в Excel 2003):
(чтобы этот пункт меню был доступен, в Excel должна быть открыта хоть одна книга (любая))

Здесь мы нажимаем кнопку «Обзор. », выбираем наш файл (после выбора он появится в списке доступных надстроек), ставим напротив него галочку, — и надстройка автоматически загружается в Excel

После этих действий, при каждом запуске приложения Excel ваша надстройка будет доступна (открыта)

Как видно из вышеприведённого скриншота, у меня вместе с Excel постоянно загружаются 4 надстройки (пятую я временно отключил)

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

В этом вам поможет мой макрос AddinAutoRun, который добавляет (создаёт) или удаляет ЯРЛЫК на текущий файл в папку автозапуска Excel

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

Пример использования макроса: (код из модуля книги)

Ссылка на основную публикацию
Adblock
detector