Vba excel автоматический запуск макроса

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

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

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

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

    Группа "Код" на вкладке "Разработчик"

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

    Модуль ThisWorkbook в редакторе Visual Basic (VBE)

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

    Private Sub Workbook_Open()
    
    ' Put your code here
    
    End Sub

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

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

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

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

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

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

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

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

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

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

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

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

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

    Private Sub Workbook_Open()
    
    ' Put your code here
    
    End Sub

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

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

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

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

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    To run a macro automatically when the workbook opens one must enable the developer’s tools in Microsoft excel.

    Steps to enable the developer’s tool:

    Step 1: Go to File > Options > Customize Ribbon

    Step 2: Then checkmark the Developer’s tool option in the customize ribbon option.

    Now you can record Macro, run Macro and do everything that a developer can do.

    Steps to run macro automatically when the workbook opens:

    Step 1: Go to the developer’s menu and then go to the visual basic.

    Step 2: Go to ThisWorkbook Tab.

    Step 3: Write down Private Sub Workbook_open() and hit enter. You will then see the below screen.

    You can write your code or basically whatever you want between this and it will automatically run every time the workbook is opened.

    Let us make a Welcome Message Box:

    Step 4: Save the workbook as Excel Macro-Enabled Workbook.

    Note: If you don’t save it as an Excel macro-enabled workbook then it will not save the macros and it will simply save as a normal excel file.

    Output:

    Now, whenever you open this workbook you will see this message box pops up automatically.

    Like Article

    Save Article

    Добавлю к ответу igumnov.

    Код необходимо вставить в модуль ЭтаКнига (Для Word — ThisDocument)

    Alt+F11 — открываем проект VBA.
    Слева — окно проекта, модуль находится там, в папке Microsoft Excel Objects

    Исполняемый макрос записывается в общий модуль (в папке Modules).

    Если модуля нет, его нужно создать: в редакторе VBA вкладка Insert-Module

    Если окна проекта нет, открыть — меню Viev-Project Explorer (Ctrl+R)

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

    Поменять уровень безопасности вручную:

    Для Excel-2003: меню Сервис-Макрос-Безопасность

    Для Excel-2010 глубже: закладка ленты Файл-Параметры-Центр_управления_безопасностью-Параметры_центра_управления_безопасностью-Параметры_макросов

    Программно менять уровень безопасности можно, но перед этим нужно установить на компьютер скрипт, который «умеет» менять уровень безопасности. Такие программы есть в свободном доступе.

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

    ​Смотрите также​​Мне всегда хватает​ 2)​ Обычно это один​. В отличие от​ файл​ и Personal.xlsb, но​ таблиц и т.п.​ не видно -​Insert — UserForm​Private Sub Workbook_Open()​ модуль листа, но​чтобы создать настраиваемый шаблон​перейдите в папку, в​ выберите пункт Сохранить​ быть отменено, поэтому​ЭтаКнига​Примечание:​ одного из двух​пробовал прописать макрорекордером​ из следующих вариантов:​

    ​ процедур, код функций​PERSONAL.XLSB​ второго мы не​ Вопрос — где​ отобразите соответствующее окно​. Появится пустая серая​If Sheets(«Лист1»).[a1] <>​ ничего не сортируется.​ книги или листа,​

    ​ которой хранится книга​

    ​ как > Компьютер,​ убедитесь, что для​. Если вы​​ Мы стараемся как можно​​ проверенных способов​ открытие книги -​C:Program FilesMicrosoft OfficeOffice12XLSTART​

    ​ начинаются с оператора​. Его ветку которого​ видим. Таким образом​

    ​ эти несколько строк​​ через меню​ оконная форма будущей​ 8 Then MsgBox​Sub Worksheet_Open()​ введите любое имя;​ (XLSTART или альтернативная​ нажмите Обзор и​ тестирования кода на​ не видите окно​ оперативнее обеспечивать вас​

    1. ​KuklP​​ тоже не помогло​​C:Documents and SettingsComputerApplication DataMicrosoftExcelXLSTART​​Function​​ можно развернуть плюсиком​

      Группа

    2. ​ все макросы, которые​​ кода хранить? Ведь​​View — Project Explorer​​ заставки. Добавим на​​ «Это последнее предупреждение!»​Range(«J1»).Select​нажмите Сохранить;​​ папка), выберите книгу​​ выберите папку XLSTART.​ пустую книгу или​ проекта, можно перейти​ актуальными справочными материалами​​: Где он там​​ ((((​​C:Usersимя-вашей-учетной-записиAppDataRoamingMicrosoftExcelXLSTART​​или​​ слева, добравшись до​​ хранятся в ЛКМ​

      Модуль ThisWorkbook в редакторе Visual Basic (VBE)

    3. ​ от того, где​) и добавьте в​ нее изображение при​

      ​Sheets("Лист1").[a1] = 8​
      ​Selection.AutoFilter Field:=1, Criteria1:="НА​выберите Файл > Закрыть.​
      ​ и нажмите Удалить.​

    4. ​В чистой установке выпуска​ копию существующей книги.​​ в​​ на вашем языке.​​ такое сказал? И​​Может кто нибудь​

      ​Как вариант, можно спросить​​Public Function​​Module1​ оказываются доступы для​

    5. ​ макрос хранится будет​​ него следующий код:​ помощи панели инструментов​​ActiveWorkbook.Save​

    ​ ПЕЧАТЬ»​Автоматический макрос (например, Auto_Open),​​Вы можете сохранить часто​​ Windows Vista или​

    ​ Если код не​режим​ Эта страница переведена​​ что по-твоему означает​​ в курсе можно​ о положении этой​

    1. ​, а заканчиваются на​​, где и хранится​​ запуска в любой​​ потом зависеть где​​Private Sub Workbook_Open()​​Toolbox​​End Sub​

    2. ​End Sub​​ записанный в книгу,​​ используемые настройки книги​​ более новой версии​​ вас устраивают, закройте​​>​​ автоматически, поэтому ее​

    3. ​ строка:​​ ли так сделать​​ папки сам Excel​

    ​End Function​ код только что​ момент, пока открыт​

    ​ он сможет (или​​ UserForm1.Show End Sub​(если у вас​Лист1 скрыть​Как правильно сделать?​ которая открывается при​ в шаблоне и​ путь к папке​ книгу без сохранения​Окно проекта​ текст может содержать​

    1. ​cn.Open sCon​​ ?​​ с помощью VBA.​​:​​ записанного нами бессмысленного​

    2. ​ Excel.​​ не сможет) работать.​​И, наконец, вставьте обычный​​ ее не видно,​​_Boroda_​Извините, в макросах​ запуске Excel, запускается​​ автоматически открывать его​​ XLSTART обычно выглядит​

    3. ​ изменений.​или нажмите клавиши​ неточности и грамматические​

      ​?​
      ​???? очень нужна​ Для этого в​
      ​Код необходимо аналогичным образом​

    4. ​ макроса:​Если вы еще ни​​Если макрос решает небольшую​​ модуль (​​ то зайдите в​​: Проще всего ставить​

      ​ я новичок.​​ сразу же при​​ каждый раз при​ так:​

    5. ​Откройте вкладку​​Ctrl + R​ ошибки. Для нас​​KuklP​

    ​ помощь ….​ редакторе Visual Basic​​ скопировать в любой​​Поздравляю, вы только что​

    support.office.com

    Автоматическое открытие определенной книги или шаблона при запуске Excel

    ​ разу не пользовались​ локальную проблему в​Insert — Module​ меню​ на листе метку.​webley​ ее открытии.​ запуске Excel.​Office 2013 — C:Пользователи(Имя​Разработчик​.​ важно, чтобы эта​

    ​: Кросс: http://www.excel-vba.ru/forum/index.php?topic=2225.0​Serge_007​ (кнопка​ модуль книги PERSONAL.XLSB​ создали себе Личную​ ЛКМ, то изначально​ отдельно взятом файле​) и скопируйте туда​

    • ​View — Toolbox​ А лучше наоборот​: Лист не открывают,​Чтобы макрос не запустился,​Чтобы использовать шаблон книги,​ пользователя)AppDataMicrosoftExcelXLSTART;​
      ​и щелкните элемент​В открывшейся в правой​

    ​ статья была вам​AndreTM​

    • ​: У Вас слишком​Visual Basic​ и затем можно​ Книгу Макросов! Только​
      ​ файл Personal.xlsb не​ (например обрабатывает внесенные​
      ​ это:​):​ — изначально метка​

    ​ а активируют :)​​ удерживайте клавишу SHIFT​ создайте книгу, которая​Office 2013 C2R — C:Пользователи(Имя​Visual Basic​ части окна модуля​ полезна. Просим вас​:​ много знаков вопроса​

    Использование альтернативной папки автозагрузки

    ​на вкладке​ будет вызвать функцию​ не забудьте нажать​ существует. Самый легкий​

    1. ​ в конкретный отчет​Private Sub KillTheForm()​

    2. ​Нажмите кнопку​ есть, макрос при​Private Sub Worksheet_Activate()​ во время запуска​ содержит листы, стандартный​

    ​ пользователя)AppDataMicrosoftExcelXLSTART.​​.​ вставьте следующий код:​ уделить пару секунд​Цитата​ и скобок​Разработчик​ обычным образом, как​ на кнопку сохранения​ способ его создать​ данные особым образом),​ Unload UserForm1 End​Image​ запуске проверяет ее​webley​ Excel.​ текст (например, заголовки​Если вы выполнили обновление​

    Отмена открытия конкретной книги при запуске Excel

    ​В левой части​Private Sub Workbook_Open()​ и сообщить, помогла​

    • ​(KuklP)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Где он там​А макрорекордер пишет​) нужно открыть окно​ любую стандарную функцию​ с дискеткой в​

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

    ​ — это записать​ то логично хранить​ Sub​ и растяните на форме​ наличие, если есть,​: Сразу файл не​

    ​Alex4​ страниц, столбцов и​ с другой версии​Проекта VBA​’ Put your​ ли она вам,​ такое сказал? И​ открытие:​Immediate​ Excel, нажав кнопку​

    ​ левом верхнем углу​ рекордером какой-нибудь ненужный​

    • ​ код внутри этого​

    • ​Все. Можно закрывать редактор​ прямоугольник — в​ то выполняется и​

    • ​ посмотрел — поскольку​

    • ​: Цель: автоматически обновлять​ сток), формулы, макросы,​

    • ​ Windows, путь может​разверните папку​ code here​ с помощью кнопок​ что по-твоему означает​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub OpenFile()​

    • ​сочетанием клавиш​f​ на панели инструментов.​

    • ​ бессмысленный макрос, но​ же файла. Без​ Visual Basic, сохранять​

    • ​ него будет помещено​

    • ​ стирает эту метку.​ лист у вас​

    • ​ фильтр в таблице​ стили и другое​

    ​ выглядеть так:​

    1. ​Проекта VBA​End Sub​

    2. ​ внизу страницы. Для​ строка: cn.Open sCon​

    3. ​Workbooks.Open Filename:=»C:путьКнига2.xls»​Ctrl+G​x​Дальше все просто. Любой​

    4. ​ указать в качестве​ вопросов.​

      • ​ файл и пробовать​ фоновое изображение. Затем​ Все последующие разы​

      • ​ один, скорее всего​ при открытии страницы​ форматирование, которое вы​

      • ​Office 2013 — C:Program​для книги, а​Вставьте код записанные в​

    5. ​ удобства также приводим​

    6. ​В вопросе ТС​

    Отмена запуска автоматического макроса при запуске Excel

    ​End Sub​, ввести туда команду​в строке формул​ нужный вам макрос​ места для его​А если макрос должен​

    • ​ закрыть-открыть книгу…​ на панели инструментов​ макрос проверяет метку​ имеется ввиду открытие​

    support.office.com

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

    ​Имеется макрос на​​ собираетесь постоянно использовать​ FilesMicrosoft OfficeOffice 15XLSTART​ затем дважды щелкните​
    ​ подпрограмме между строками​ ссылку на оригинал​
    ​ фразой «закрытая книга»​Цитата​? Application.StartupPath​
    ​ и выбрав функцию​ (т.е. кусок кода,​ хранения Личную Книгу​ быть относительно универсален​
    ​При открытии книги Excel​Properties​ — ее нет​

    ​ книги.​​ применение фильтра​ в шаблоне.​Office 2013 C2R —​

    ​ модуль​​Sub​ (на английском языке).​ подразумевалось, скорее всего,​(ek09)200?’200px’:»+(this.scrollHeight+5)+’px’);»>нужно поработать макросом​и нажать на​ в окне​ начинающийся на​ — тогда Excel​ и нужен в​ выполняет процедуру​(если у вас​ — и не​В модуль книги:​Задача: запустить макрос​
    ​Настройки, которые можно сохранить​ C:Program FilesMicrosoft Office​
    ​ЭтаКнига​и​Макрос, записанный может потребоваться​ «не открытая в​ в зарытой книгеЭто​

    planetaexcel.ru

    Выполнение макроса при открытии (активации) листа

    ​Enter​​Мастера Функций​Sub​
    ​ будет вынужден автоматически​ любой книге Excel​Workbook_Open​
    ​ ее не видно,​ выполняется дальше.​Private Sub Workbook_Open()​

    ​ автоматически при открытии​
    ​ в шаблоне:​
    ​ 15rootOffice 15XLSTART​.​
    ​End Sub​

    ​ автоматически выполняются при​
    ​ Excel». Так что,​ невозможно. Для того​

    ​:​​в категории​и заканчивающийся​
    ​ ее для вас​

    ​ — как, например,​​из модуля​ то выберите в​Можно в коде​Sheets(1).Activate​ книги​форматирование ячеек и листа;​
    ​Примечание:​
    ​В открывшейся в правой​
    ​.​
    ​ открытии конкретной книги.​
    ​ с этой точки​ что бы что-то​
    ​Полученный путь можно скопировать​

    ​Определенные пользователем (User Defined)​​End Sub​
    ​ создать. Для этого:​
    ​ макрос для конвертирования​ЭтаКнига​ меню​ макроса после выполнения​
    ​Range(«J1»).Select​Погуглилил — получилось​форматирование страниц и настройки​  Если книга или​ части окна модуля​Закройте​ Пример использует следующую​ зрения, доступ через​ сделать с закрытой​ и вставить в​:​) можно смело копировать​
    ​Откройте вкладку​ формул в значения?​. Эта процедура отображает​
    ​View — Properties​ стереть этот же​

    planetaexcel.ru

    Выполнение макроса один раз при открытии книги excel (Макросы/Sub)

    ​Selection.AutoFilter Field:=1, Criteria1:=»НА​​ вот что, но​
    ​ области печати для​ шаблон содержит макрос,​ вставьте следующий код:​Редактор Visual Basic​ процедуру для показано,​
    ​ DAO/ADO/ODBC — это​ книгой — её​
    ​ верхнюю строку окна​

    ​Примеры таких функций можно​​ и вставлять либо​​Разработчик (Developer)​
    ​ Не копировать же​ на экране нашу​) задайте выберите файл​
    ​ код​
    ​ ПЕЧАТЬ"​
    ​ это не запускается​
    ​ каждого листа;​

    ​ который автоматически запускается​​Private Sub Workbook_Open()​(не нужно ничего​ как это работает.​ возможность изменить данные.​ надо открыть. Правда​ Проводника в Windows​ в больших количествах​ в​. Если вкладки​ его код на​ форму-заставку. При отображении​ картинки в поле​Можно ставить метку,​End Sub​
    ​ автоматически. Как запустить?​стили ячеек;​ при открытии книги,​’ Put your​
    ​ сохранять).​ Можно также запустить​ Как мы помним,​ сделать это можно​
    ​ и нажать​ найти в интернете​
    ​Module1​

    ​Разработчик​​ Visual Basic каждый​ формы запускается процедура​

    excelworld.ru

    Заставка при открытии книги Excel

    ​Picture​ но не на​openid.mail.ru/mail/vlad3622340​Sub Workbook_Open() Sheets(«таблица»).Range(«B5»).AutoFilter​количество и тип страниц​

    Excel макрос при открытии книгиȎxcel

    ​ например Auto_Open, макрос​ code here​Сохранение книги в виде​ макрос автоматически при​

    Шаг 1. Создаем экранную форму

    ​ наличие на компьютере-клиенте​ и незаметно, но​Enter​ или здесь же​, либо в отдельный​​не видно, то​ раз в каждую​UserForm_Activate​:​ листе, а в​​: Спасибо большое, Webley!​ Field:=2, Criteria1:=»<>0″ End​​ в книге;​​ будет по умолчанию​​End Sub​​книги Excel с поддержкой​ запуске Excel.​ самого Excel при​​ всё-таки придётся​​- и мы​ на сайте (сумма​ модуль, добавив его​ ее можно включить​ книгу? Кроме того,​​, которая с задержкой​​Возможно, придется немного изменить​ свойствах, например.​Sub Worksheet_Activate() работает!​ SubСпасибо!​​защищенные и скрытые области​​ запускаться при запуске​

    Excel макрос при открытии книгиȎxcel

    ​Вставьте код записанные в​​ макросов (* xlsm)​​Windows macOS ​ этом совершенно необязательно​Hugo​ увидим папку с​ прописью, приблизительный текстовый​​ предварительно через меню​​ в настройках через​ рано или поздно,​ в 5 секунд​ размер формы, чтобы​​Можно создавать специальный​​А я где-то​LVL​​ книги. Вы можете​​ Excel.​

    Excel макрос при открытии книгиȎxcel

    ​ подпрограмме между строками​и закройте ее.​Прежде чем начать, убедитесь,​Hugo​: Сергей, R Dmitry​ нашим файлом Личной​​ поиск, ВПР 2.0,​​Insert — Module​​Файл — Параметры -​

    ​ почти любой пользователь​ запускает макрос​ изображение уместилось полностью.​ проверочный файл​ вычитал, что Worksheet_Open​​: поместить этот код​​ скрыть листы, столбцы​​Если вы сохранили автоматически​​Sub​

    Excel макрос при открытии книгиȎxcel

    ​При открытии книги, код,​ что отображаются вкладки​

    Excel макрос при открытии книгиȎxcel

    Шаг 2. Добавляем управляющий код

    ​: Сергей, ну в​ сказал, что можно​ Книги Макросов:​​ конвертация кириллицы в​​. Хранить все макросы​ Настройка ленты (Home​

    ​ приходит к мысли,​KillTheForm​ Чтобы написать на​Можно …​

    ​ и с этим​​ в модуль книги​​ и строки, чтобы​ запускаемую книгу в​и​ добавленных на процедуры​ «​​ общем конечно «не​​Тут: http://www.planetaexcel.ru/forum….D=28979 в​И несколько практических нюансов​

    ​ транслит и т.п.)​ в одном модуле​

    ​ — Options -​ что неплохо было​​, который убирает форму​​ форме текст, можно​Dan116​

    ​ мучился.​ (ЭтаКнига)​ предотвратить изменения в​

    ​ другом месте, выполните​End Sub​Workbook_Open​Разработчик​

    Как это работает?

    ​ притрагиваясь» к файлу​ конце.​​ вдогон:​​Если вы будете использовать​​ или раскладывать по​​ Customize the Ribbon)​ бы сложить все​ с экрана.​ использовать элемент управления​​: всем спасибо за​​Это в примере​alexthegreat​ ячейках;​​ следующее:​​.​будет выполняться автоматически.​

    planetaexcel.ru

    Как использовать Личную Книгу Макросов

    ​» на ленте.​ в нём ничего​Вообще вся тема​при использовании Личной Книги​ Личную Книгу Макросов,​ разным — исключительно​.​ макросы в одну​Если вы еще не​Label​ идеи!​ лист один, а​: заходите в ВБА,​

    ​повторяемый текст, например подписи​выберите Файл > Параметры​Закройте​Прежде чем начать, убедитесь,​ Подробнее читайте вкладку​ изменить нельзя. Ну​ в тему, без​ Макросов Excel будет​

    ​ то рано или​ вопрос вкуса. Выглядеть​На вкладке​ коробку, т.е. иметь​ знакомы с макросами​с панели​Этот прием позволит Вам​ в оригинале 6.​ там слева будут​ страниц, столбцов и​ Excel > Дополнительно;​Редактор Visual Basic​ что отображаются вкладки​ «Разработчик».​ разве что если​ воды.​ запускаться чуть медленнее,​

    ​ поздно у вас​ это должно примерно​Разработчик​ их всегда под​ в Excel, то​Toolbox.​ выводить на экран​ После открытия книги​ объекты, смотрите Объект​ строк;​

    ​в разделе Общие в​(не нужно ничего​ «​Чтобы использовать в приведенном​ только изменив адресацию​Serge_007​ особенно на слабых​ возникнет желание:​ так:​нажмите кнопку​ рукой. И может​ я вам даже​Ну, и наконец, выделив​ окно-заставку при открытии​ другие листы изменяются​ ЭТА КНИГА, щелкаете​данные, графические элементы, формулы,​ поле Каталог автозагрузки​ сохранять).​Разработчик​ ниже примере, откройте​ диска​: Я Диму конечно​ ПК​поделиться своими накопленными макросами​Запустить добавленный макрос можно​Запись макроса (Record Macro)​ быть даже запускать​

    Как создать Личную Книгу Макросов

    ​ немного завидую. Ощущение​​ предварительно всю форму,​ ​ любой заданной книги​​ вручную и влияют​ по нему 2​ диаграммы и другую​ введите полный путь​​Сохранение книги в виде​​» на ленте.​ новую книгу.​И кстати только​ уважаю, но нет,​стоит периодически очищать Личную​ с другими пользователями​ в диалоговом окне,​. В открывшемся окне​ не вручную, а​ всемогущества и осознание​ можно задать текст​ в Excel.​ на этот лист.​ раза, открывается, далее​ информацию;​ к альтернативной папке​книги Excel с поддержкой​ Это можно сделать:​Важно:​

    ​ что проверил -​ не верю​ Книгу от информационного​скопировать и перенести Личную​ вызываемом с помощью​ выберите Личную книгу​ сочетаниями клавиш? И​ того, что ваш​ в строке заголовка,​Заставка появляется сразу после​ И вот после​ наверху будут 2​настройки проверки данных;​ автозагрузки.​ макросов (* xlsm)​В меню выберите команду​

    1. ​ Код VBA не может​​ работают оба варианта​​Меня Сергей KukIp​​ мусора, старых и​​ Книгу на другой​ кнопки​ макросов (Personal Macro​​ вот тут может​ Microsoft Excel можно​ используя свойство​ открытия файла и​​ его открытия (АКТИВАЦИИ),​
    2. ​ выпадающих списка слева​​макросы, гиперссылки и элементы​​Примечание:​​и закройте ее.​​Excel​ быть отменено, поэтому​ SQL/ADO. И добавляет,​ на программерс убедил​ ненужных макросов и​ компьютер​​Макросы (Macros)​​ Workbook) как место​
      Записываем макрос в Личную Книгу Макросов
    3. ​ здорово помочь Личная​​ прокачивать почти до​​Caption​​ автоматически исчезает через​

    ​ должно сразу отобразиться​ выбираете workbook справа​​ ActiveX для форм;​​  Так как Excel​При открытии книги, код,​​>​​ убедитесь, что для​ и обновляет.​ (к сожалению не​ т.п.​​сделать ее резервную копию​​на вкладке​ для хранения записанного​​ Книга Макросов (Personal​​ бесконечности, которые придут​в панели​ несколько секунд.​​ то, что нужно​​ Open и туда​параметры вычислений в книге​ будет пытаться открыть​ добавленных на процедуры​

    Личная Книга Макросов в редакторе VBA

    ​предпочтения…​ тестирования кода на​ek09​ могу найти ссылку,​у корпоративных пользователей бывают​Для этого нужно будет​Разработчик​ кода и нажмите​

    Как использовать Личную Книгу Макросов

    ​ Macro Workbook).​ к вам после​Properties​Откройте редактор Visual Basic​​ печатать.​​ вставляете свой макрос​​ и представлений окон.​​ каждый файл в​Workbook_Open​>​​ пустую книгу или​​: Спасибо за помощь​ это давно было)​ иногда сложности с​​ найти файл PERSONAL.XLSB​​:​OK​На самом деле,​ знакомства с макросами​:​ — в старых​Так что нужно​

    Полезный макрос в Личной Книге Макросов

    ​ БЕЗ НАЗВАНИЯ без​Чтобы создать шаблон:​ альтернативной папке автозагрузки,​будет выполняться автоматически.​​ленты и панели инструментов​​ копию существующей книги.​​ всем ! Какая​​Для того что​

    Запуск макросов

    ​ использованием Личной Книги,​ на диске вашего​​В этом же окне,​​:​Личная Книга Макросов​ — приятные чувства.​В итоге у вас должно​ версиях Excel это​ именно в модуль​ строки sub и​выберите Файл > Сохранить​

    ​ укажите папку, в​Если вы постоянно используете​.​​ Если код не​ ​ то интересная штука​ бы прочитать последовательность​​ т.к. это файл​ компьютера. По умолчанию,​ нажав кнопку​​Остановите запись кнопкой​​(ЛКМ)​​Однако, эта статья для​​ получиться нечто подобное:​​ можно сделать через​​ листа.​

    Пример макро-функции

    ​ end sub​ как;​ которой находятся только​ приложение Excel для​В категории​ вас устраивают, закройте​ получается …​ байт необходимо открыть​​ в системной скрытой​​ этот файл хранится​​Параметры (Options)​Остановить запись (Stop Recording)​- это обычный​​ тех, кто уже​​Щелкните правой кнопкой мыши​​ меню​​Вопрос решён. Ещё​

    Выбор пользовательской функции в окне Мастера Функций

    ​Если правильно понял​в поле Тип файла​ те файлы, которые​ работы с одной​настроить ленту​ книгу без сохранения​в открытой книге​ контейнер их содержащий​ папке​

    Где хранится Личная Книга Макросов

    ​ в специальной папке​, можно задать сочетание​на вкладке​ файл Excel в​ «познал мощь» и​

    • ​ по форме и​Сервис — Макрос -​
    • ​ раз благодарю!​ Ваш вопрос​ выберите пункт Шаблон;​
    • ​ можно открыть с​

    ​ и той же​в списке​ изменений.​ ссылка на ячейку​ (т.е. файл). На​ek09​ автозапуска Excel, которая​ клавиш для быстрого​Разработчик (Developer)​ формате двоичной книги​ начал использовать макросы​ выберите​ Редактор Visual Basic​Dan116​А вообще приложите​в поле Сохранить в​ помощью Excel. Если​ книгой или создаете​Основные вкладки​Откройте вкладку​ в закрытой книге​

    • ​ кластере HDD -​
    • ​: Здравствуйте​
    • ​ называется XLSTART. Так​

    ​ запуска макроса с​Проверить результат можно, нажав​ (​ (чужие или написанные​View Code​ (Tools — Macro​: Добрый день.​​ файл и Вам​​ укажите папку, в​​ книга с одним​​ новые книги на​​установите флажок​​Разработчик​​ обновляется а макросом​​ это просто последовательность​​как макросом книги​​ что все, что​​ клавиатуры. Будьте внимательны:​​ на кнопку​

    Путь к личной книге макросов

    ​Personal.xlsb​ самостоятельно — не​.В открывшийся модуль формы​ — Visual Basic​Стоит задача, выполнить​​ сделают, потом посмотрите​​ которую нужно сохранить​ и тем же​ основе одного шаблона,​Разработчик​

    Файл Личной Книги Макросов в папке XLSTART

    P.S.

    ​и щелкните элемент​ нет ))))​

    • ​ байт, не имеющая​ 1 открыть закрытую​ нужно — это​ сочетания клавиш для​Visual Basic​
    • ​), который автоматически в​ важно) в своей​ добавьте такой код:​ Editor)​ макрос один раз​
    • ​ как сделали… думаю​ шаблон;​ именем находится и​ настройте Excel таким​.​Visual Basic​

    planetaexcel.ru

    как макросом книги 1 открыть закрытую книгу 2 Excel ??????? (Макросы Sub)

    ​Serge_007​​ привязки к конкретному​
    ​ книгу 2 Excel​ добраться до этой​ макросов различают раскладку​там же на​
    ​ скрытом режиме открывается​ повседневной работе.​Private Sub UserForm_Activate()​, а в новых​ при открытии книги,​ будет проще..​в поле Имя файла​ в папке XLSTART,​
    ​ образом, чтобы ваша​Нажмите кнопку​.​: Она обновляется только​
    ​ файлу. Как-то так…​ ???????​ папки на нашем​ (русская или английская)​
    ​ вкладке​ одновременно с Microsoft​

    ​Макрос — это код​​ Application.OnTime Now +​ кнопкой​ при последующих открытиях​smile
    ​openid.mail.ru/mail/vlad3622340​ сделайте следующее:​
    ​ и в альтернативной​
    ​ книга или шаблон​
    ​Сохранить​

    ​В левой части​​ в том случае,​Hugo​В идеале нужно​ ПК. И вот​ и регистр.​Разработчик​ Excel. Т.е. когда​ (несколько строк) на​ TimeValue(«00:00:05»), «KillTheForm» End​Visual Basic​

    ​ макрос не выполнять.​​: Доброго дня всем​чтобы создать шаблон книги​smile
    ​ папке автозагрузки, будет​ открывались при его​
    ​.​Проекта VBA​ если Вы ОТКРЫЛИ​

    ​: Я сам не​​ поработать макросом в​ тут возникает небольшая​Кроме обычных макросов-процедур в​smile
    ​- в открывшемся​ вы просто запускаете​ языке Visual Basic,​ Sub​на вкладке​
    ​Как можно реализовать​ обитателям Планеты Excel!​ по умолчанию, введите​ открываться файл из​ запуске.​Чтобы использовать в приведенном​разверните папку​ закрытую книгу и​ проверял — и​ зарытой книге а​

    ​ сложность, потому что​​ Личной Книге можно​ окне редактора в​ Excel или открываете​ которые заставляют Excel​Откройте модуль​Разработчик (Developer)​
    ​ наиболее простым способом?​Подскажите пожалуйста, как​ Книга;​smile

    ​ папки XLSTART.​​Чтобы открывать одну и​ ниже примере, откройте​Проекта VBA​ внесли в неё​
    ​ в теме не​
    ​ у меня почему​tongue

    ​ местоположение этой папки​​ хранить и​

    ​ левом верхнем углу​​ любой файл с​​ сделать то, что​​ЭтаКнига​и создайте новую​Спасибо!​ запустить код макроса​
    ​чтобы создать шаблон листа​Чтобы книга не открывалась​ ту же книгу​ новую книгу.​для книги, а​ изменения, после чего​ отписались как решилось…​ то макрос книги​ зависит от версии​пользовательские макро-функции​ на панели​ диска, на самом​ вам нужно: обработать​smile

    ​в левом верхнем​​ форму, используя команду​Nic70y​ при открытии листа?​ по умолчанию, введите​ автоматически при запуске​ при запуске Excel,​Важно:​ затем дважды щелкните​smile
    ​ она опять стала​ Так что не​ 1 не работает​ Windows и Office​(UDF = User Defined​

    ​Project — VBA Project​​ деле открываются два​ данные, сформировать отчет,​ углу (если ее​ меню​
    ​:​Вставляю это в​ Лист;​ Excel:​ в меню Файл​

    ​ Код VBA не может​​ модуль​ закрытой​ знаю.​ в закрытой книге​ и может различаться.​ Function)​должен появиться наш​ файла — ваш​smile

    excelworld.ru

    ​ скопипастить много однообразных​

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

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

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

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

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

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

    Dim TimeToRun   'глобальная переменная, где хранится следующее время запуска
    
    'это главный макрос
    Sub MyMacro()
        Application.Calculate                               'пересчитываем книгу
        Range("A1").Interior.ColorIndex = Int(Rnd() * 56)   'заливаем ячейку А1 случайным цветом :)
        Call NextRun                                        'запускаем макрос NextRun для назначения след.времени запуска
    End Sub
    
    'этот макрос назначает время следующего запуска главного макроса
    Sub NextRun()
        TimeToRun = Now + TimeValue("00:00:03")     'прибавляем к текущему времени 3 сек
        Application.OnTime TimeToRun, "MyMacro"     'назначаем следующий запуск
    End Sub
    
    'макрос для запуска последовательности повторений
    Sub Start()
        Call NextRun
    End Sub
    
    'макрос для остановки последовательности повторений
    Sub Finish()
        Application.OnTime TimeToRun, "MyMacro", , False
    End Sub
    

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

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

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

    Заготовка

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

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

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

    Запуск макроса через 3 сек

    Остановить последовательность можно, запустив, соответственно макрос 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.exe                      Путь к файлу EXCEL.EXE

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

      Excel в Диспетчере задач Windows              Свойства процесса Excel.exe

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

      Путь к Excel через VBA
      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:Архив под именем Отчет с добавлением к имени даты и времени.

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

    If Format(Now, "hh:mm") = "05:00" Then ThisWorkbook.RefreshAll
    

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

    Ссылки по теме

    • Что такое макросы, как их использовать, куда вставлять код на Visual Basic в Excel
    • Как создать свою надстройку с макросами для Excel
    • Как использовать Личную Книгу Макросов (Personal Macro Workbook) как библиотеку для своих макросов в Excel

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

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

    Содержание

    • Где посмотреть полившийся макрос и запустить его?
    • Запуск макроса в Excel. Горячие клавиши
    • Автозапуск макроса при открытии книги
    • Дополнительные возможности запуска макроса при действии с книгой
    • Дополнительные возможности запуска макроса при действии с листом
    • Похожие статьи

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

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

    Запуск макроса в Excel

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

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

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

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

    Запуск макроса

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

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

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

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

    Запуск макроса 2

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

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

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

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

    Запуск макроса 3

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

    Копируйте тело макроса из правого окна (между 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 — при изменение на листе

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

    Готов ответить на вопросы в комментариях!

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

    Как мы знаем, для таких случаев разработчик снабдил все приложения из пакета Microsoft Office встроенным языком программирования Visual Basic for Applications (VBA).

    Весь программный код оформляется в виде процедур (макросов) или функций. И сейчас мы разберем, как автоматически запускать макросы при открытии текстового документа Word или рабочей книги Excel.

    Видеоурок по данной теме «Автозапуск макросов в Word и Excel» вы можете найти на нашем Youtube-канале «Учите компьютер вместе с нами!»

    Прежде всего, следует помнить, что обычные документы хранятся в файлах типа *.docx или *.xlsx и не предусматривают наличие макросов. Поэтому, первое, что нужно сделать, это включить такую поддержку. Для этого, во вкладке «Файл» выбираем пункт «Сохранить как» и в открывшемся окне «Сохранение документа«, в списке «Тип файла» выбираем «Документ Word с поддержкой макросов» или «Книга Excel с поддержкой макросов«, указываем требуемое имя файла и нажимаем кнопку «Сохранить«.

    *Каждый рисунок можно увеличить щелчком левой кнопки мыши по нему

    После указанных манипуляций, наши сохраненные файлы будут иметь расширения *.docm или *.xlsm. Вход в редактор VBA выполняется нажатием сочетания клавиш <ALT>+<F11>.

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

    1. Автозапуск макросов в Word. Здесь все предельно просто. Если вы хотите, чтобы макрос автоматически выполнялся при открытии документа, тогда вам нужно присвоить ему специальное имя «Autoopen«.

    Находясь в редакторе VBA, выбираем пункт меню «Insert/Вставка«, «Module/Модуль«. Далее, в открывшемся окне модуля набираем программный код:

    Public Sub Autoopen()

        …

    End Sub

    Начало макроса записывается командой Public Sub, конец — End Sub. Все что находится между ними — это команды VBA, которые будут автоматом выполняться при открытии данного документа, например:

    Команда MsgBox («Hello, World!») выводит на экран текстовое сообщение «Hello, World!».

    2. Автозапуск макросов в Excel. Как ни странно, но в Excel такой подход не срабатывает. Здесь «Autoopen» не является зарезервированным именем и такой макрос не будет выполняться автоматически при открытии книги.

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

    Для этого, в редакторе VBA, в окне «Project» выполняем двойной щелчок левой кнопкой мыши на объекте «ЭтаКнига«. В открывшемся окне модуля, из верхнего левого списка выбираем объект «Workbook«, а из правого списка — событие «Open«, как показано на рисунке ниже.

    В результате, текст макроса автоматически приобретает вид:

    Private Sub Workbook_Open()

        …

    End Sub

    То есть, название макроса записывается в формате: Объект_Событие. Теперь, вместо многоточия прописываем требуемый программный код. В нашем случае, это команда MsgBox («Hello, World!»).

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

    Как сообщалось на нашем сайте ранее, файлы Excel можно открыть в разных окнах.

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

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

    Содержание

    1. Что такое макрос и для чего он применяется
    2. Как создать новый макрос в Excel
    3. Способ 1. Автоматический запуск макроса
    4. Запуск выполнения макроса
    5. Корректировка макроса
    6. Способ 2. Создание макроса в ручном режиме
    7. Как изменять существующие макросы
    8. Заключение

    Что такое макрос и для чего он применяется

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

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

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

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

    Давайте приведем один пример. Любое приложение, независимо от используемой операционной системы, содержит кнопку «Закрыть». Если мы хотим сделать это через макрос, нам нужно ввести в среду разработки команду ActiveWindow.Close. Видим, что по названиям операторов можно много чего понять, поскольку все они пишутся на английском языке. Это также упрощает задачу пользователя, который знает английский язык.

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

    Как создать новый макрос в Excel

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

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

    Способ 1. Автоматический запуск макроса

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

    1. Найти меню «Файл» и сделать по нему левый клик мышью. Как создавать, изменять и запускать макросы в Excel
    2. Далее появляется экран с набором подпунктов. Нам нужно выбрать меню «Параметры».Как создавать, изменять и запускать макросы в Excel
    3. После этого находим пункт «Настройка ленты» и ищем в нем флажок, активирующий вкладку «Разработчик».
    4. Подтверждаем свои действия путем нажатия клавиши «ОК».

    После этого мы увидим вкладку «Разработчик» в нашей программе. Делаем переход по ней. Перед нами появляется большое количество инструментов разработчика. Из всего этого ассортимента нас интересует группа «Код». Там находится маленькая кнопка «Записать макрос», после клика по которой осуществляется непосредственная запись этой программы. Как создавать, изменять и запускать макросы в Excel

    Далее пользователь увидит диалоговое окно. С него можно задать параметры для нашей будущей подпрограммы. Здесь доступны следующие настройки:

    1. Имя макроса. Допустимо использование какого-угодно имени за исключением того, которое начинается с числа или символа. При этом нельзя в качестве имени использовать больше одного слова.
    2. Комбинация клавиш. Это некий пусковой крючок для макроса. Он используется для того, чтобы включить макрос. Все горячие клавиши начинаются с клавиши Ctrl, а вторую можно настроить самостоятельно. Например, можно использовать горячую клавишу r. Также возможен ввод большой буквы. Для этого необходимо воспользоваться клавишей Shift, которая автоматически добавляется в комбинацию горячих клавиш.
    3. Место хранения. По умолчанию предусмотрен вариант, когда макрос применяется к текущей книге. Тем не менее, пользователь может выбрать новую или создать собственную книгу для макросов.
    4. Описание. При желании пользователь может в нескольких предложениях описать, что будет делать макрос. Это будет особенно полезно, если одной и той же книгой пользуются несколько человек.

    После выполнения всех действий нужно нажать клавишу ОК, тем самым подтвердив изменения. Теперь все действия, совершаемые пользователем, будут автоматически записываться в макрос. Это будет продолжаться ровно до тех пор, пока запись программы не будет остановлена. Значительно проще разобрать это на реальном примере. Давайте сделаем программку, которая будет умножать содержимое двух ячеек. Для этого нужно запустить запись макроса, ввести в ячейку формулу (в нашем случае это =B2*B3), нажать клавишу Enter, после чего остановить запись. Кнопка остановки записи макроса находится на вкладке «Разработчик» в группе «Код».

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

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

    1. Открыть вкладку «Разработчик». Там в самой левой части есть кнопка «Макросы», по которой нужно сделать левый клик мышью один раз. Кроме этого, пользователь может открыть аналогичную опцию путем нажатия горячих клавиш Alt + F8. Как создавать, изменять и запускать макросы в Excel
    2. После этого у нас откроется окно настройки макросов. Нужно выбрать тот, который мы только что создали, и нажать на кнопку «Выполнить». Этот же результат можно получить, если нажать сочетание клавиш, которое мы назначили для макроса раньше.Как создавать, изменять и запускать макросы в Excel
    3. О том, что макрос работает, мы можем судить по действиям программы. Если они повторяют те, которые были сделаны раньше, значит все ОК. Как создавать, изменять и запускать макросы в Excel

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

    Корректировка макроса

    Если в ходе исполнения макроса появляются какие-то проблемы, их можно исправить. Самая распространенная проблема, по которой команды не выполняются, как надо – ошибки пользователя на этапе первичной записи команд. Чтобы отредактировать созданный макрос, нужно выполнить следующие действия.

    1. Открыть окошко макросов путем нажатия на ту же кнопку, что была описана выше или же воспользоваться комбинацией клавиш.
    2. Выбираем наш макрос. Находим кнопку «Изменить», которая находится справа от него. Делаем единичный левый клик мышью по ней.Как создавать, изменять и запускать макросы в Excel
    3. После этого откроется редактор Visual Basic. Правки придется вносить в код, поэтому если навыков программирования нет, нужно быть очень внимательным при записи макроса.

    На данном этапе нужно уже немного переходить к следующей теме: ручное редактирование макроса. Любой макрос начинается командой Sub. О том, что макрос заканчивается, компьютер понимает по команде End Sub. После слова Sub показывается название макроса. После этого в структуре записывается описание макроса и та комбинация клавиш, которая необходима для его запуска.

    Далее следуют команды, которые выполняют конкретные действия. Например, номер ячейки мы получаем с помощью оператора Range. В нашем примере, мы получаем ячейку B2 с помощью команды Range(“B2″).Select. Это действие аналогично выбору ячейки левой кнопкой мышки. Значение ячейки, которая выбрана на данный момент указывается с помощью оператора ActiveCell.FormulaR1C1. Как создавать, изменять и запускать макросы в Excel

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

    Range(«B4»).Select

    ActiveCell.FormulaR1C1 = «3»

    Как создавать, изменять и запускать макросы в Excel

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

    Но это уже лирическое отступление. Нам еще осталось совершить одно действие – изменить первоначальное выражение, которое касалось ячейки D2, на это: ActiveCell.FormulaR1C1 = «=RC[-2]*R[1]C[-2]*R[2]C[-2]»

    Как создавать, изменять и запускать макросы в Excel

    Внимание! Видим, что адреса в ячейках в данном примере записываются, как R1C1.

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

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

    Также можно ускорить работу макроса путем добавления команды Application.ScreenUpdating = False. После этого на экране не будут показываться те промежуточные шаги, которые выполняет макрос, лишь конечный результат. Если же нужно, чтобы отображение на экране было вновь включено, тогда нужно заменить False на True.

    Способ 2. Создание макроса в ручном режиме

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

    1. Перейти во вкладку «Разработчик» и нажать на кнопку «Visual Basic». Она находится в самой левой части панели инструментов в этой вкладке. Как создавать, изменять и запускать макросы в Excel
    2. Далее появится окно, которое мы уже знаем по предыдущему разделу. Как создавать, изменять и запускать макросы в Excel
    3. Весь код пишется здесь.

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

    Как изменять существующие макросы

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

    Заключение

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

    Оцените качество статьи. Нам важно ваше мнение:

    Понравилась статья? Поделить с друзьями:
  • Vba excel автозапуск макроса
  • Vba excel vba tutorial
  • Vba excel type in cell
  • Vba excel xml parser
  • Vba excel variant что это