Что нужно сделать если в задачу нужно вложить файл содержащий макросы

Обновлено: 25.04.2024

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

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

Что такое Макрос?

Макрос в Microsoft Office (да, этот функционал работает одинаково во многих приложениях пакета Microsoft Office) – это программный код на языке программирования Visual Basic for Applications (VBA), сохранённый внутри документа. Чтобы было понятнее, документ Microsoft Office можно сравнить со страницей HTML, тогда макрос – это аналог Javascript. То, что Javascript умеет делать с данными в формате HTML, находящимися на web-странице, очень похоже на то, что макрос может делать с данными в документе Microsoft Office.

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

  • Применять стили и форматирование.
  • Выполнять различные операции с числовыми и текстовыми данными.
  • Использовать внешние источники данных (файлы баз данных, текстовые документы и т.д.)
  • Создавать новый документ.
  • Проделывать все вышеперечисленные действия в любой их комбинации.

Создание макроса – практический пример

Для примера возьмём самый обычный файл CSV. Это простая таблица 10х20, заполненная числами от 0 до 100 с заголовками для столбцов и строк. Наша задача превратить этот набор данных в презентабельно отформатированную таблицу и сформировать итоги в каждой строке.

Макросы в Excel

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

Чтобы создать макрос, откройте View (Вид) > Macros (Макросы) > Record Macro (Запись макроса…)

Макросы в Excel

Дайте своему макросу имя (без пробелов) и нажмите ОК.

Макросы в Excel

Начиная с этого момента, ВСЕ Ваши действия с документом записываются: изменения ячеек, пролистывание таблицы, даже изменение размера окна.

Excel сигнализирует о том, что включен режим записи макроса в двух местах. Во-первых, в меню Macros (Макросы) – вместо строки Record Macro (Запись макроса…) появилась строка Stop Recording (Остановить запись).

Макросы в Excel

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

Макросы в Excel

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

Макросы в Excel

Далее, введите в ячейки формулы в соответствии с названиями заголовков (даны варианты формул для англоязычной и русифицированной версии Excel, адреса ячеек – всегда латинские буквы и цифры):

Макросы в Excel

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

Макросы в Excel

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

Макросы в Excel

Далее, мы подведем итоги для всей таблицы, для этого делаем ещё несколько математических действий:

Макросы в Excel

  • =SUM(L2:L21) или =СУММ(L2:L21)
  • =AVERAGE(B2:K21) или =СРЗНАЧ(B2:K21) — для расчёта этого значения необходимо взять именно исходные данные таблицы. Если взять среднее значение из средних по отдельным строкам, то результат будет другим.
  • =MIN(N2:N21) или =МИН(N2:N21)
  • =MAX(O2:O21) или =МАКС(O2:O21)
  • =MEDIAN(B2:K21) или =МЕДИАНА(B2:K21) — считаем, используя исходные данные таблицы, по причине указанной выше.

Макросы в Excel

Теперь, когда с вычислениями закончили, займёмся форматированием. Для начала для всех ячеек зададим одинаковый формат отображения данных. Выделите все ячейки на листе, для этого воспользуйтесь комбинацией клавиш Ctrl+A, либо щелкните по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов. Затем нажмите Comma Style (Формат с разделителями) на вкладке Home (Главная).

Макросы в Excel

Далее, изменим внешний вид заголовков столбцов и строк:

  • Жирное начертание шрифта.
  • Выравнивание по центру.
  • Заливка цветом.

Макросы в Excel

И, наконец, настроим формат итоговых значений.

Макросы в Excel

Вот так это должно выглядеть в итоге:

Макросы в Excel

Если Вас все устраивает, остановите запись макроса.

Макросы в Excel

Поздравляем! Вы только что самостоятельно записали свой первый макрос в Excel.

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

Чтобы очистить все ячейки от данных, щёлкните правой кнопкой мыши по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов, и из контекстного меню выберите пункт Delete (Удалить).

Макросы в Excel

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

Важный момент! Если Вы сохраните файл с расширением XLTX, то макрос в нём работать не будет. Кстати, можно сохранить книгу как шаблон Excel 97-2003, который имеет формат XLT, он тоже поддерживает макросы.

Макросы в Excel

Когда шаблон сохранён, можно спокойно закрыть Excel.

Выполнение макроса в Excel

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

  • Макрос может нанести вред.
  • Ещё раз прочти предыдущий пункт.

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

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

Макросы в Excel

Следующим шагом, мы импортируем последний обновлённый набор данных из файла CSV (на основе такого файла мы создавали наш макрос).

Макросы в Excel

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

Макросы в Excel

Когда импорт будет закончен, зайдите в меню Macros (Макросы) на вкладке View (Вид) и выберите команду View Macros (Макросы).

Макросы в Excel

В открывшемся диалоговом окне мы увидим строку с именем нашего макроса FormatData. Выберите его и нажмите Run (Выполнить).

Макросы в Excel

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

Макросы в Excel

Заглянем под капот: Как работает макрос?

Как уже не раз упоминалось, макрос — это программный код на языке программирования Visual Basic for Applications (VBA). Когда Вы включаете режим записи макроса, Excel фактически записывает каждое сделанное Вами действие в виде инструкций на языке VBA. По-простому, Excel пишет программный код вместо Вас.

Чтобы увидеть этот программный код, нужно в меню Macros (Макросы) на вкладке View (Вид) кликнуть View Macros (Макросы) и в открывшемся диалоговом окне нажать Edit (Изменить).

Макросы в Excel

Откроется окно Visual Basic for Applications, в котором мы увидим программный код записанного нами макроса. Да, Вы правильно поняли, здесь этот код можно изменить и даже создать новый макрос. Те действия, которые мы совершали с таблицей в этом уроке, вполне можно записать с помощью автоматической записи макроса в Excel. Но более сложные макросы, с тонко настроенной последовательностью и логикой действий требуют программирования вручную.

Макросы в Excel

Добавим ещё один шаг к нашей задаче…

Представьте, что наш исходный файл с данными data.csv создаётся автоматически каким-то процессом и сохраняется на диске всегда в одном и том же месте. Например, C:\Data\data.csv – путь к файлу с обновляемыми данными. Процесс открытия этого файла и импорта данных из него тоже можно записать в макрос:

  1. Откройте файл шаблона, в котором мы сохранили макрос — FormatData.
  2. Создайте новый макрос с именем LoadData.
  3. В процессе записи макроса LoadData сделайте импорт данных из файла data.csv – как мы это делали в предыдущей части урока.
  4. Когда импорт будет завершён, остановите запись макроса.
  5. Удалите все данные из ячеек.
  6. Сохраните файл, как шаблон Excel с поддержкой макросов (расширение XLTM).

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

Макросы в Excel

Если есть желание заняться программированием, Вы можете объединить действия этих двух макросов в один – просто скопировав код из LoadData в начало кода FormatData.

Excel для Microsoft 365 Word для Microsoft 365 Outlook для Microsoft 365 PowerPoint для Microsoft 365 Access для Microsoft 365 Excel 2021 Word 2021 Outlook 2021 PowerPoint 2021 Access 2021 Microsoft Visio профессиональный 2021 Microsoft Visio стандартный 2021 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 Access 2019 Visio профессиональный 2019 Visio стандартный 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 Access 2016 Visio профессиональный 2016 Visio стандартный 2016 Excel 2013 Word 2013 Outlook 2013 PowerPoint 2013 Access 2013 Visio профессиональный 2013 Visio 2013 Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 Access 2010 Visio премиум 2010 Visio 2010 Visio стандартный 2010 Excel Starter 2010 Еще. Меньше

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

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

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

Сведения об использовании макроса на компьютере с Windows S см. в Office в Windows 10 S.

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

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

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

Примечание: Этот процесс работает только в том случае, если вы открыли файл, содержащий макрос.

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

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

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

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

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

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

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

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

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

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

Область

Выберите нужные вам решения и нажмите кнопку ОК.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.

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

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

Вкладка

Запись макроса

Перед записью макросов полезно знать следующее:

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

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

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

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

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

Нажмите ALT+T+M+R.

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

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции "Отменить" в данном экземпляре Excel.

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса . При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (Personal.xlsб), если она еще не существует, и сохраняет макрос в этой книге.

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

Хотя поле "Описание" является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

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

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

Нажмите ALT+T+M+R.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

Диалоговое окно

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Сведения о параметрах безопасности макросов и их значении.

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

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

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

Вы можете назначать макросы формам и элементам ActiveX на листе.

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

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

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

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

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

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

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

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

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

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

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.

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

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

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

Чтобы начать запись макроса, нажмите кнопку ОК.

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

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

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

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Узнайте, как включать и отключать макросы в Excel для Mac.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

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

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Узнайте, как найти справку по элементам Visual Basic.

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

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

В Microsoft Access макросы, присоединенные к объектам пользовательского интерфейса, таким как кнопки, текстовые поля, формы и отчеты, называются макросами пользовательского интерфейса. Это позволяет отличить их от макросов данных, которые присоединяются к таблицам. С помощью макросов пользовательского интерфейса можно автоматизировать ряд действий, таких как открытие другого объекта, применение фильтра, запуск операции экспорта и многие другие задачи. В этой статье представлен новый конструктор макросов, а также описаны основные задачи, связанные с созданием макроса пользовательского интерфейса.

Примечание: Эта статья не относится к веб-приложениям Access.

В этой статье

Общие сведения

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

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

Построитель макросов

Вот некоторые основные возможности конструктора макроса.

Каталог действий Макро макрос у систематизованы по типу и с помощью поиска.

IntelliSense. При вводе выражений IntelliSense предлагает возможные значения и позволяет выбрать правильное значение.

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

Поток программы Создавайте более понятные макросы с строками прикомментов и группами действий.

Условные выписки Разрешить более сложное выполнение логики с поддержкой вложенных если/Иначе если.

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

Вот видеоролик, в котором вы сможете иным образом о том, как основные области конструктора макроса.

Браузер не поддерживает видео.

Создание автономного макроса

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

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

Откроется конструктор макросов.

На панели быстрого доступа нажмите кнопку Сохранить.

В диалоговом окне Сохранение введите имя макроса, а затем нажмите кнопку "ОК".

Создание внедренного макроса

Данная процедура позволяет создать макрос, внедренный в свойство события объекта. Такие макросы не отображаются в области навигации, но их можно вызывать их событий, например Загрузка или Нажатие кнопки.

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

В области навигации щелкните правой кнопкой мыши форму или отчет, в которые нужно добавить макрос, и выберите команду Режим макета.

Если окно свойств не отображается, нажмите клавишу F4.

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

Щелкните поле свойства для события, которое должно активировать макрос. Например, если вы хотите, чтобы макрос выполнялся при нажатии кнопки, щелкните поле свойства Нажатие для кнопки.

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

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

Если откроется диалоговое окно Построитель, убедитесь, что выбран пункт Макросы, а затем нажмите кнопку ОК.

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

Добавление макрокоманд в макрос

Макрокомандами называются отдельные команды, которые образуют макрос. Имя макрокоманды отражает ее назначение, например НайтиЗапись или ЗакрытьБазуДанных.

Шаг 1. Просмотр или поиск макрокоманд

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

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

На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.

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

Найти макрокоманду можно одним из следующих способов:

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

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

Выполните поиск макрокоманды, введя текст в поле "Поиск" в верхней части области "Каталог макрокоманд". По мере ввода список макрокоманд фильтруется и в нем выводятся все макросы, которые содержат текст. Access ищет введенный текст в именах макросов и их описаниях.

Шаг 2. Добавление макрокоманды в макрос

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

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

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

Дважды щелкните макрокоманду в каталоге макрокоманд.

Если в области макроса выбрана макрокоманда, Access добавит новую макрокоманду под выбранной.

Если в области макроса выделен блок Группа, Если, Иначе если, Иначе или Вложенный макрос, Access добавит новую макрокоманду в него.

Если в области макроса не выбраны макрокоманды и блоки, Access добавит новую макрокоманду в конец макроса.

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

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

Если вы хотите просто скопировать макрокоманды из автономного макроса в текущий (вместо того чтобы создавать макрокоманду ЗапускМакроса), щелкните его правой кнопкой мыши в каталоге макрокоманд и выберите команду Добавить копию макроса.

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

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

Шаг 3. Ввод аргументов

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

Ввод выражения с помощью функции IntelliSense

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

Дополнительные сведения о создании выражений см. в статье Введение в использование выражений.

Сведения об использовании IntelliSense со свойствами веб-базы данных

При создании макроса пользовательского интерфейса, внедренного в веб-совместимую форму, IntelliSense позволяет добавлять любые свойства формы в выражение. Однако в веб-базе данных с помощью макросов пользовательского интерфейса можно получать доступ только к некоторым свойствам формы. Например, если в форме "Форма1" есть элемент управления "Элемент1", IntelliSense позволит добавить [Формы]![Форма1]![Элемент1].[ControlSource] в выражение в макросе пользовательского интерфейса. Но если опубликовать базу данных в службах Access, макрос, содержащий выражение, будет вызывать ошибку при запуске на сервере.

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

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

Например, если в ячейки часто вводятся длинные текстовые строки, можно создать макрос для форматирования этих ячеек для охватывания ими текста.

Запись макросов. При записи макроса Microsoft Excel сохраняет информацию о каждом шаге выполнения последовательности команд. Последующий запуск макроса вызывает повторение («воспроизведение») команд. Если при записи макроса была допущена ошибка, сделанные исправления также будут записаны. Visual Basic хранит каждый записанный макрос в отдельном модуле, присоединенном к книге.

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

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

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

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

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

Запись макроса

1. Установите Средний или Низкий уровень безопасности.

1. В меню Сервис выберите команду Параметры.

2. Откройте вкладку Безопасность.

3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.

4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.

2. Выберите в меню Сервис команду Макрос и подкоманду Начать запись.

3. В поле Имя макроса введите имя макроса .

Примечания

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

Примечание. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос.

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

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

Если необходимо добавить описание макроса, введите его в поле Описание.

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

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

На панели инструментов Остановить запись нажмите кнопку Остановить запись .

Создание макроса с использованием Microsoft Visual Basic

1. В меню Сервис Microsoft Excel выберите команду Макрос, а затем — Редактор Visual Basic.

2. В меню Insert выберите команду Module.

3. Введите или скопируйте программу в окно программы модуля.

4. Чтобы запустить данный макрос из окна модуля, нажмите кнопку F5.

5. Когда макрос будет создан, выберите команду Close and Return to Microsoft Excel в меню File.

Создание макроса, выполняемого при запуске

Автоматические макросы , такие как Авто_активизировать, выполняются при запуске Microsoft Excel.

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

1. Установите Средний или Низкий уровень безопасности.

Инструкции

1. В меню Сервис выберите команду Параметры.

2. Откройте вкладку Безопасность.

3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.

4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.

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

3. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.

4. В поле Имя макроса введите имя того макроса, который нужно скопировать.

6. Выделите строки макроса, которые нужно скопировать.

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

7. На стандартной панели инструментов нажмите кнопку Копировать.

8. Переключитесь в модуль, в который нужно вставить скопированные строки.

Совет

Файл личной книги макросов (Personal.xls) можно просмотреть в любой момент, открыв его в редакторе Visual Basic (Alt+F11). Поскольку Personal.xls является скрытой книгой, которая всегда открыта, необходимо сделать ее доступной, если требуется копировать макрос .

Выполнение макроса

Выполнение макроса

1. Установите Средний или Низкий уровень безопасности.

Инструкции

1. В меню Сервис выберите команду Параметры.

2. Откройте вкладку Безопасность.

3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.

4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.

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

3. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.

4. В поле Имя макроса введите имя того макроса, который требуется выполнить.

5. Выполните одно из следующих действий.

Запустите макрос в книге Microsoft Excel

Чтобы прервать выполнение, нажмите кнопку ESC.

Выполните макрос из модуля Microsoft Visual Basic

Совет

Чтобы выполнить другой макрос, находясь в редакторе Visual Basic , выберите команду Macros в меню Tools В поле Macro name введите имя того макроса, который нужно выполнить, а затем нажмите кнопку Run.

Назначение клавиши для запуска макроса

1. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.

2. В поле Имя макроса введите имя того макроса , которому нужно присвоить сочетание клавиш .

Примечание. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос.

5. Если необходимо добавить описание макроса, введите его в поле Описание.

Назначение кнопки или графического объекта для запуска макроса

1. Щелкните кнопку или графический объект, чтобы появились маркеры изменения размера .

2. Выделив этот объект, щелкните правой кнопкой мыши его маркер изменения размера, чтобы вызвать контекстное меню .

3. Выберите в контекстном меню команду Назначить макрос.

4. Выполните одно из следующих действий.

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

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

o Чтобы написать новый макрос в редакторе Visual Basic , нажмите кнопку Создать. Чтобы отредактировать существующий макрос, выберите его имя в списке Имя макроса и нажмите кнопку Правка .

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

Назначение области графического объекта для запуска макроса

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

2. Выделив только что нарисованный объект, щелкните правой кнопкой мыши его маркер изменения размера , чтобы вызвать контекстное меню .

3. Выберите в контекстном меню команду Назначить макрос.

4. Выполните одно из следующих действий.

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

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

o Чтобы написать новый макрос в редакторе Visual Basic , нажмите кнопку Создать. Чтобы отредактировать существующий макрос, выберите его имя в списке Имя макроса и нажмите кнопку Правка .

5. В меню Формат выберите команду Автофигура , а затем вкладку — Цвет и линии.

6. В группе Заливка выберите параметр Нет заливки в поле Цвет. В группе Линия выберите параметр Нет линий в поле Цвет.

7. Повторите эти шаги для всех областей, которые требуется создать. Нет необходимости создавать отдельный объект для каждой области.

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

1. Выберите команду Настройка в меню Сервис.

2. Выполните одно из следующих действий.

o Если панель инструментов , содержащая требуемую кнопку, не отображается на экране, перейдите на вкладку Панели инструментов и установите флажок рядом с названием этой панели.

o Если на панели инструментов отсутствует кнопка, которая должна запускать макрос , откройте вкладку Команды, выберите пункт Макросы в списке Категории. Из списка Команды перетащите мышью настраиваемую кнопку на панель инструментов.

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

4. Введите название макроса в поле Имя макроса , затем нажмите кнопку OK.

Изменение макроса

Для изменения макроса необходимо знакомство с редактором Visual Basic , который используется для написания и изменения макросов Microsoft Excel.

1. Установите Средний или Низкий уровень безопасности.

Инструкции

1. В меню Сервис выберите команду Параметры.

2. Откройте вкладку Безопасность.

3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.

4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.

2. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.

3. Введите имя макроса в поле Имя макроса .

5. Для получения сведений о работе с редактором Visual Basic в меню Справка выберите пункт справка Microsoft Visual Basic.

Удаление макроса

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

2. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.

3. В списке Находится в выберите Эта книга .

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

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

Выполните одно из следующих действий.

Чтобы остановить текущий выполняющийся макрос , нажмите клавишу ESC, а затем в диалоговом окне Microsoft Visual Basic нажмите кнопку End.

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

Копирование модуля макроса в другую книгу

1. Установите Средний уровень безопасности.

Инструкции

1. В меню Сервис выберите команду Параметры.

2. Откройте вкладку Безопасность.

3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.

4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.

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

3. В меню Сервис выберите команду Макрос, а затем — Редактор Visual Basic.

4. В меню Вид выберите команду Окно проекта .

Автор статьи

Куприянов Денис Юрьевич

Куприянов Денис Юрьевич

Юрист частного права

Страница автора

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