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

Как запустить макрос в excel при открытии книги

  • автор:

Как автоматически при открытии книги запустить макрос в excel?

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

Код для автозагрузки при открытии Word:

Private Sub Document_Open() 'Вместо EntryPoint вставьте название Вашего главного метода' Call EntryPoint End Sub 

Отслеживать
ответ дан 22 авг 2012 в 16:26
7,796 1 1 золотой знак 28 28 серебряных знаков 49 49 бронзовых знаков

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. В меню выберите Параметры excel >. >лента & панели инструментов.
  2. В категории Настройка ленты в списке Основные вкладки выберите поле Разработчик проверка.
  3. Нажмите кнопку Сохранить.

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

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

  1. Откройте вкладку Разработчик и щелкните элемент Visual Basic.
  2. В Обозреватель проекта VBA слева разверните папку VBA Project для книги, а затем дважды щелкните модуль ThisWorkbook.
  3. В открывавшемся справа окне модуля вставьте следующий код:
Private Sub Workbook_Open() ' Put your code here End Sub

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

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

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

Как запустить макрос в excel при открытии книги

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

Файлы для скачивания:

Файл Описание Размер файла: Скачивания
Пример 14 Кб 2973

Рассмотрим два примера:

1. Ищем и используем команду

Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру «1». Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:

Sub Вставка1() Dim q As Object On Error Resume Next Set q = Cells For Each q In Selection q = 1 Next q End Sub

Выделяем данный код (без нумерации строк, начиная со слова Sub) и нажимаем Ctrl+C. Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11, у вас откроется окно редактора VBA:

Как вставить готовый макрос в рабочую книгу?

В левом окне «Project — VBA Project» выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, «VBAProject (Книга2)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_5.png

В пункте меню «Insert» выбираем «Module»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_2.png

В левом окне «Project — VBA Project» у вас должна появиться новая папка «Modules» и в ней новый объект «Module1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_3.png

Переходим курсором в правое «Большое» поле для ввода и нажимаем Ctrl+V, скопированный макрос вставиться в модуль:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_4.png

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

Если вы работаете в MS Excel 2007, 2010 или 2013, вам необходимо будет сохранить вашу рабочую книгу как «Книга Excel с поддержкой макросов (.xlsm)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_16.png

В MS Excel 2003 достаточно будет просто сохранить файл.

Чтобы выполнить скопированный в книгу макрос выделяем ячейки, в которые необходимо вставить «1», нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_8.png

Откроется диалоговое окно «Макрос», в списке макросов выбираем свой и нажимаем кнопку «Выполнить»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_9.png

Макрос выполнится — в выделенные ячейки вставиться «1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_20.png

Макросы в MS Excel можно вставлять в следующие места:

  • В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
  • В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
  • В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
  • Так же макросы могут быть частью пользовательской формы.

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

Чтобы вставить код в Рабочий лист, в левом окне редактора VBA выберите соответствующий лист, щелкните по нему два раза левой кнопкой мышки, переместите курсор в правое поле ввода и вставьте код.

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_10.png

Для вставки кода в Книгу, выберите «ЭтаКнига»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_17.png

Давайте потренируемся. Вставьте код опубликованный ниже в «Лист1».

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox ("Ячейка " & Target.Address & " = 2") End If a: Exit Sub End Sub

Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа «2».

Вернитесь в рабочую книгу, перейдите в «Лист1» и введите в ячейку «А1» цифру «2» и нажмите Enter, после чего у вас должно появиться следующее сообщение:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_11.png

Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_21.png

2. Ищем и используем функцию

Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

Public Function КолСловВЯчейке(Ячейка As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Ячейка.Value), " ") КолСловВЯчейке = UBound(q) + 1 End Function

Копируем код, нажимаем сочетание клавиш Alt+F11, откроется редактор VBA:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_22.png

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_23.png

Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст «мама мыла раму». Встаем в ячейку, в которой хотим получить результат (количество слов), в меню «Формулы» нажимаем кнопку «Вставить функцию»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_12.png

В открывшемся окне «Вставка функции» в поле «Категория» выбираем «Определенные пользователем»

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_13.png

В списке доступных функций выбираем «КолСловВЯчейке», нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_14.png

Вводим необходимые аргументы и нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_15.png

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_24.png

Важно:

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

Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки » . «

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_6.png

Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как «Текст в кодировке Unicode». Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку «A1» и нажмите сочетания клавиш Ctrl+Alt+V. Должно будет появиться меню «Специальной вставки», выберите пункт «Текст в кодировке Unicode» и нажмите «OK».

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_7.png

Код должен будет вставиться в рабочий лист без знаков вопроса:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_18.png

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

Если вы не видите в редакторе VBA окна «Project — VBA Project», перейдите во вкладку меню «View» и в списке выберите пункт «Project Explorer» или нажмите сочетание клавиш Ctrl+R:

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

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

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

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

  • Для Windows перейдите в раздел Параметры >файлов >настройка ленты.
  • Для Mac перейдите в раздел Параметры> Excel. >лента & панели инструментов.
  • Затем в разделе Настройка ленты в разделе Основные вкладки проверка поле Проверка разработчика и нажмите кнопку ОК.

Запуск макроса на вкладке «Разработчик»

  1. Откройте книгу, содержащую нужный макрос.
  2. На вкладке Разработчик в группе Код нажмите кнопку Макросы.
  3. В поле Имя макроса щелкните макрос, который нужно запустить, и нажмите кнопку Выполнить .
  4. У вас также есть другие варианты:
    • Параметры . Добавление сочетания клавиш или описания макроса.
    • Шаг . Откроется редактор Visual Basic в первой строке макроса. Нажатие клавиши F8 позволит выполнить пошаговое выполнение макрокода по одной строке за раз.
    • Изменить . Откроется редактор Visual Basic и вы сможете редактировать код макроса по мере необходимости. После внесения изменений можно нажать клавишу F5 , чтобы запустить макрос из редактора.

Выполнение макроса путем нажатия сочетания клавиш

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

  1. На вкладке Разработчик в группе Код нажмите кнопку Макросы.
  2. В поле Имя макроса щелкните макрос, который нужно назначить сочетанию клавиш.
  3. Нажмите кнопку Параметры. Откроется диалоговое окно Параметры макроса.
  4. В поле Сочетание клавиш введите любую строчную или прописную букву, которую вы хотите использовать с сочетанием клавиш.

  • В Windows сочетание клавиш для строчных букв — ctrl+letter. Для прописных букв это CTRL+SHIFT+Буква.
  • Для Mac сочетание клавиш для строчных букв — Option+Command+letter, но ctrl+letter также будет работать. Для прописных букв это CTRL+SHIFT+Буква.
  • Будьте осторожны при назначении сочетаний клавиш, так как они переопределяют любой эквивалентный сочетания клавиш Excel по умолчанию, пока открыта книга, содержащая макрос. Например, если назначить макрос ctrl+z, вы потеряете возможность отмены. Поэтому обычно рекомендуется использовать сочетание клавиш CTRL+SHIFT+ПРОПИСНЫЕ буквы , например CTRL+SHIFT+Z, которое не имеет эквивалентного сочетания клавиш в Excel.

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

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

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

Запустите макрос, нажав кнопку в настраиваемой группе на ленте

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

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

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

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

  1. На листе вставьте графический объект, например рисунок, или нарисуйте фигуру. Распространенный сценарий — нарисовать фигуру прямоугольника с округлением и отформатировать ее таким образом, чтобы она выглядела как кнопка. Сведения о вставке графического объекта см. в статье Добавление, изменение и удаление фигур.
  2. Щелкните правой кнопкой мыши созданную точку доступа и выберите пункт Назначить макрос.
  3. Выполните одно из указанных ниже действий.
  4. Чтобы назначить существующий макрос графическому объекту, дважды щелкните макрос или введите его имя в поле Имя макроса .
  5. Чтобы записать новый макрос для назначения выбранному графическому объекту, нажмите кнопку Запись, введите имя макроса в диалоговом окне Запись макроса и нажмите кнопку ОК , чтобы начать запись макроса. Завершив запись макроса, нажмите кнопку Остановить запись

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

Совет: Вы также можете нажать кнопку Остановить запись

в левой части строки состояния.

Запуск макроса из редактора Visual Basic (VBE)

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

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

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

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

  1. Откройте или создайте книгу, в которую нужно добавить макрос.
  2. На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
  3. В окне Проект Обозреватель щелкните правой кнопкой мыши объект ThisWorkbook и выберите пункт Просмотреть код.

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

Private Sub Workbook_Open()

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

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

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

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

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