Найти тему
Журнал «Код»

Что такое макросы

Программирование на минималках

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

Что такое макрос

Макрос — это небольшая программа, которая исполняется внутри какой-то другой программы, например в Фотошопе или Экселе. Вы можете сами написать эту программу и автоматизировать таким образом свою работу.

Где вы могли видеть макросы

Если вы когда-нибудь фотографировались на документы, вы наверняка видели такую картину: вас сфотографировали, поровняли голову по какому-то шаблону, убрали прыщи, а потом нажали какую-то кнопку — и за секунду у вас на листе шесть фотографий с логотипом фотомастерской, и всё выводится на печать. Это поработал макрос.

Вот пример, как такие макросы программируются и используются:

Какие бывают макросы

Обычно макросы бывают двух видов:

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

Часто в программах поддерживается и то и другое — например в Фотошопе можно записать макрос на панели Actions, и это будут только действия, доступные из меню Фотошопа. А ещё можно написать специальный скрипт для Фотошопа, у которого будут намного более широкие возможности.

55 бесплатных макросов для Фотошопа.

Для чего они нужны

Задача любого макроса — автоматизировать всё так, чтобы несколько действий выполнялись как одно.

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

Ещё примеры:

  • Ставить на готовый документ водяные знаки и грифы, подшивать в архив, отправлять почтой, подавать на согласование.
  • Делать много разных версий одного и того же файла (например, разные размеры фотографий для разных мест на сайте).
  • Отправлять один и тот же документ разным людям в разные отделы в разных форматах.
  • Автоматически заполнять договоры и другие документы; генерировать договоры по заданным условиям; выставлять счета и генерировать акты на основании одной карточки клиента.
  • Пакетно обрабатывать фотографии: накладывать эффекты, менять цвет.
  • Находить в документах потенциально опасный контент, как-то его помечать.
  • Находить в тексте ошибки, неверно поставленные кавычки или тире, убирать двойные пробелы.

И многое другое — смотря на что способна ваша программа.

Программирование макросов

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

Но есть второй способ — написать код с нуля. Например, для всех программ Microsoft Office макросы пишутся на языке VBA — Visual Basic for Application. Это специальная версия языка Visual Basic для приложений, на котором можно писать сложную логику.

Вот пример макроса для Microsoft Word, который убирает из текста двойные пробелы и пробелы перед запятой (автор — Яна Харина):

А этот макрос для Экселя сохраняет каждый лист как отдельный PDF-файл — полезно, если надо переслать отчёт клиенту по почте, чтобы он его мог открыть его где угодно:

Напоследок — макрос для всех, кто работает с комментариями в Экселе. Комментарии там обозначаются маленьким треугольничком, который легко пропустить. Этот макрос подсвечивает все ячейки с комментариями — они становятся заметными, и сразу ясно, на что обратить внимание:

Ещё больше макросов для Экселя на сайте TrumpEXCEL.

Макросы в оборудовании

Поддержка макросов бывает даже у клавиатур и мышей — у них есть программируемые кнопки, к которым можно привязать выполнение каких-то действий. А ещё можно собрать под себя клавиатуру, где каждая кнопка будет отвечать за какое-то своё действие: открыть файл, запустить программу, настроить уровень яркости в комнате и так далее.

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

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

Макросы на уровне операционной системы

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

Вот что в нём можно сделать (например):

  • Склеить несколько PDF в один большой документ.
  • Одной кнопкой сделать текстовый документ из содержимого буфера обмена и сохранить в нужное место.
  • Массово переименовать файлы.
  • Открыть определённый набор сайтов одной кнопкой.
  • Озвучить выделенный текст голосом и сохранить аудиофайл, куда нужно.
  • Скачать откуда-нибудь какую-нибудь картинку и дальше что-то с ней сделать.

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

Подборка готовых скриптов для Автоматора на Гитхабе.

Automator — мощный редактор скриптов для MacOS. С ним можно запрограммировать почти всё, что касается работы компьютера
Automator — мощный редактор скриптов для MacOS. С ним можно запрограммировать почти всё, что касается работы компьютера

Что делать, если программа не поддерживает макросы

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

Что дальше

Теперь, когда мы знаем про макросы, попробуем поработать с ними в деле — сделаем свои макросы для Word и Excel. Подпишитесь, чтобы не пропустить проект и сэкономить себе время в будущем.


С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц