Программирование на минималках
Мы уже говорили про автоматизацию на компьютере — как сделать так, чтобы он сам запускал программы и обрабатывал данные. А ещё можно автоматизировать работу отдельной программы. За это отвечают макросы.
Что такое макрос
Макрос — это небольшая программа, которая исполняется внутри какой-то другой программы, например в Фотошопе или Экселе. Вы можете сами написать эту программу и автоматизировать таким образом свою работу.
Где вы могли видеть макросы
Если вы когда-нибудь фотографировались на документы, вы наверняка видели такую картину: вас сфотографировали, поровняли голову по какому-то шаблону, убрали прыщи, а потом нажали какую-то кнопку — и за секунду у вас на листе шесть фотографий с логотипом фотомастерской, и всё выводится на печать. Это поработал макрос.
Вот пример, как такие макросы программируются и используются:
Какие бывают макросы
Обычно макросы бывают двух видов:
- Запись каких-то действий в программе — то есть только то, что вы бы могли сделать сами с клавиатуры или мышки.
- Полноценная мини-программа на каком-то языке — внутреннем языке программы или на каком-то общеизвестном.
Часто в программах поддерживается и то и другое — например в Фотошопе можно записать макрос на панели Actions, и это будут только действия, доступные из меню Фотошопа. А ещё можно написать специальный скрипт для Фотошопа, у которого будут намного более широкие возможности.
55 бесплатных макросов для Фотошопа.
Для чего они нужны
Задача любого макроса — автоматизировать всё так, чтобы несколько действий выполнялись как одно.
Допустим, мы часто работаем с таблицами в Excel и нам часто приходится делать определённое оформление: выделять первую строку жирным, добавлять линию отбивки, выделять разным цветом фоны и т. д. Это можно сделать за минуту. Но минута — это ж минута! Представьте, что через нас в день проходит 120 таких таблиц. Чтобы каждый раз не делать триста движений, можно один раз записать макрос, который будет делать всё то же самое, но за секунду и по нажатию одной кнопки.
Ещё примеры:
- Ставить на готовый документ водяные знаки и грифы, подшивать в архив, отправлять почтой, подавать на согласование.
- Делать много разных версий одного и того же файла (например, разные размеры фотографий для разных мест на сайте).
- Отправлять один и тот же документ разным людям в разные отделы в разных форматах.
- Автоматически заполнять договоры и другие документы; генерировать договоры по заданным условиям; выставлять счета и генерировать акты на основании одной карточки клиента.
- Пакетно обрабатывать фотографии: накладывать эффекты, менять цвет.
- Находить в документах потенциально опасный контент, как-то его помечать.
- Находить в тексте ошибки, неверно поставленные кавычки или тире, убирать двойные пробелы.
И многое другое — смотря на что способна ваша программа.
Программирование макросов
Чаще всего макросы делают так: нажимают кнопку «Записать макрос» и начинают выполнять действия в программе. Потом нажимают «стоп», и все записанные действия запоминаются как макрос. Когда этот макрос будет запущен, он моментально повторит те же самые действия, но с новыми данными.
Но есть второй способ — написать код с нуля. Например, для всех программ Microsoft Office макросы пишутся на языке VBA — Visual Basic for Application. Это специальная версия языка Visual Basic для приложений, на котором можно писать сложную логику.
Вот пример макроса для Microsoft Word, который убирает из текста двойные пробелы и пробелы перед запятой (автор — Яна Харина):
А этот макрос для Экселя сохраняет каждый лист как отдельный PDF-файл — полезно, если надо переслать отчёт клиенту по почте, чтобы он его мог открыть его где угодно:
Напоследок — макрос для всех, кто работает с комментариями в Экселе. Комментарии там обозначаются маленьким треугольничком, который легко пропустить. Этот макрос подсвечивает все ячейки с комментариями — они становятся заметными, и сразу ясно, на что обратить внимание:
Ещё больше макросов для Экселя на сайте TrumpEXCEL.
Макросы в оборудовании
Поддержка макросов бывает даже у клавиатур и мышей — у них есть программируемые кнопки, к которым можно привязать выполнение каких-то действий. А ещё можно собрать под себя клавиатуру, где каждая кнопка будет отвечать за какое-то своё действие: открыть файл, запустить программу, настроить уровень яркости в комнате и так далее.
Многие игроки специально покупают программируемые мышки с поддержкой макросов, чтобы получить преимущество в онлайн-играх. Например, с помощью макросов можно устранить отдачу при стрельбе, выполнить быструю закупку, накастовать нужное заклинание или точно прицелиться.
В кастомных клавиатурах на клавиши можно вешать целые конструкции из кода, комбинации горячих клавиш и всякие сложные последовательности нажатий. Например, можно запрограммировать макрос «Изображать бурную деятельность», который будет двигать курсором по экрану и делать вид, что вы над чем-то думаете. Нажимаете клавишу, откидываетесь в кресле, и, если работодатель захочет понаблюдать за вами через удалённый доступ, он будет уверен, что вы крепко задумались над кодом.
Макросы на уровне операционной системы
В MacOS встроено приложение Automator, которое помогает писать и исполнять макросы на уровне операционки: работать с файлами, немного управлять стандартными программами системы и даже залезать в некоторые сторонние приложения, если они поддерживают нужные API.
Вот что в нём можно сделать (например):
- Склеить несколько PDF в один большой документ.
- Одной кнопкой сделать текстовый документ из содержимого буфера обмена и сохранить в нужное место.
- Массово переименовать файлы.
- Открыть определённый набор сайтов одной кнопкой.
- Озвучить выделенный текст голосом и сохранить аудиофайл, куда нужно.
- Скачать откуда-нибудь какую-нибудь картинку и дальше что-то с ней сделать.
И есть всякие надстройки на Automator, чтобы работать с изображениями, документами и отдельными программами. Когда людям надо, они пишут такие скрипты и делятся с сообществом.
Подборка готовых скриптов для Автоматора на Гитхабе.
Что делать, если программа не поддерживает макросы
Если в программе нет встроенной поддержки макросов, можно скачать специальный софт — он запишет ваши действия и сможет повторять их в любой нужный момент. Как-нибудь доберёмся и до этого — выпустим отдельную подборку программ для создания своих макросов на уровне системы.
Что дальше
Теперь, когда мы знаем про макросы, попробуем поработать с ними в деле — сделаем свои макросы для Word и Excel. Подпишитесь, чтобы не пропустить проект и сэкономить себе время в будущем.