Макрос в Excel — что это?

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

[frame src=»/wp-content/uploads/2020/10/image.png» width=»100%» lightbox=»on» title=»Запись макроса в Excel»]

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

Если в вашем меню Excel еще нет вкладки «Разработчик», как на картинке выше, установите курсор в правую часть ленты меню (справа вверху экрана Excel, чуть ниже линии гл. меню), нажмите пр. кл. мыши → Настройка ленты, далее активируйте чекбокс Разработчик. То же самое можно сделать через гл. меню Excel: Файл — Параметры — Настройка ленты.

[frame src=»/wp-content/uploads/2020/10/image-1.png» width=»100%» lightbox=»on» title=»Excel — пункт меню Разработчик»]

Все картинки и пути в описании соответствуют Excel 365. Почему лучше пользоваться Office 365, читайте здесь.

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

  1. передавать базу в открытом виде нежелательно, и не совсем законно, мало ли что произойдет в ваших отношениях с агентством завтра. Данные желательно зашифровать, например в соответствии с требованиями Яндекс.Аудиторий или Facebook Business Manager;
  2. клиентов в компании, как оказалось, более 100К, у кого-то может и больше, каждую строку нужно зашифровать отдельно (⊙_⊙)

Подробнее об условиях задачи: Что нужно сделать?

  • удалить строки с повторяющимися значениями мейлов, т.к. это необработанная выгрузка всех транзакций из CRM компании за несколько лет, и по условиям задачи мейл является уникальным идентификатором клиента;
  • в оставшемся списке удалить строки с повторяющимися значениями телефонов, при этом удаляя дубли телефонов необходимо оставить хронологически последнюю строку исходя из предположения, что если клиент с одним и тем же телефоном менял мейл, то последний с большей вероятностью является актуальным;
  • все мейлы привести в строчный формат типа +ххххххххххх (в начале номера обязательно плюс, далее слитно цифры без пробелов, скобок, тире, знаков экспоненты);
  • хешировать данные по алгоритму md5 (32-разрядная последовательность символов) для передачи таблицы в контекстные аккаунты;
  • хеширование выполнить offline, средствами excel, пользоваться онлайн-сервисами нельзя из-за риска перехвата персональных данных;
  • на выходе получить два файла xlsx – без хеширования и с хешированием.

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

Разбор учебного примера с вымышленными мейлами и телефонами — по ссылке, реальная таблица в задаче имела 180 тыс. строк и 27 колонок, т.е. ок. 5 млн. ячеек. Представьте, что теперь с помощью макроса вы сможете обработать такой объем за несколько секунд.

…coming soon

Прокрутить вверх