Макрос – программа внутри программы, написанная пользователем. Нужно ли это рядовому сотруднику и какую пользу можно извлечь из “офисного программирования”? Иногда - да, и очень даже! Так намного веселее...
Макросы в Excel и в Office – люблю их. Они такие внезапные… Когда некоторые в школе учили Visual Basic, то и не подозревали, что потом можно будет неплохо развлечься в офисе.
Что оно делает? Да в общем, всё что напишете. На самом деле, там заложены огромные возможности, главное – код написать. Но вдаваться в подробности того, насколько мощный инструмент заложен в том же Экселе, и с чем его есть, не будем. Возьмём простой уровень среднего офисного работника. Рассказываю.
В один не очень прекрасный день на работе самозародился список мероприятий. Строк так на 500, и он продолжал расти и развиваться. Бонусом было то, что исполнитель у каждого пункта был свой, а даты исполнения – две. Просто чтобы не расслаблялись и вообще у нас менеджмент. Как водится, за этими датами надо следить, иначе всем плюшевый пушной зверь, конец и расстрел в офисной столовой. Специальные программы-планировщики, таск-трекеры, управление проектами? Наташа, иди отсюда, не отвлекай людей. Сижу. Думаю.
Открываю Excel, запускаю VBA и начинаю шоу.
В результате наваяла следующее.
Макрос тыкался в каждую строчку в указанном месте и выбирал дату, которая приближается или уже прошла (в зависимости от требуемого отчёта). Это простая математика – больше или меньше. Каждую пойманную строчку он злодейски копировал на отдельный лист, после чего из списка находил ответственного за безобразие. Со всем этим добром он стучался в Outlook и создавал там шаблонное письмо в духе “Иван Иваныч! Все пропало, вокзал уезжает, поезда разбегаются, пассажиры бунтуют, пришлите отчёт”. Не все коллеги и не сразу догадались, что им пишет автомат.
И это было хорошо. Отчёт? Вот. Оповестила всех? Да, да, пять человек.
Уже другая работа, проблемы те же. Список уже больше – до нескольких тысяч строчек. Задача – подписать категорию. К каждой. Чисто математическое действие – если здесь упало 1 зелёное яблоко, а не 2 жёлтых апельсина, и попало в компанию, а не в человека, то это, например, первая категория. А если арбуз больше 5 кило вкатился в физическое лицо, то вторая.
Веселая получилась программа – 18 штук “если”. Я обожаю домыслы и сравнения одного с другим, но здесь мне пришлось рисовать стрелочки, как в мемах - да, нет, не знаю.
Обидно, но макрос ошибался реже, чем я. И писал быстрее.
Третья работа, четвёртая проблема – файлы Word с кучей картинок страниц так на тысячу – результат распознавания неопознанного. Перебор, решила я. Иллюстрации в этой трагедии никому не были нужны, поэтому я написала код, который брал их всех и удалял. Правда, под раздачу иногда попадало что-то ещё, но читать всё это всё равно требовалось, так что потери критичными не являлись.
Владею ли я программированием? Нет. Я люблю пить кофе, пока программа там что-то делает. Я скорее знаю основные слова, которые можно использовать в программах. И могу разобрать то, что хорошо написали до меня.
Многие задачи, особенно простые и типовые, уже решены. Причем в оптимальном варианте. Можно, конечно, писать с нуля, но зачем? На работе всё равно на это времени нет.
Реальность: найти готовый код под шаблонную задачу легко.
В чём подвох: макрос – программа. Если вы не знаете, что она делает, то даете карт-бланш на то, что может вам не понравится. Как в примере выше – тот же Excel может слазить в другое приложение, чем-то там заняться, и удалить следы своей деятельности прежде, чем вы допьёте кофе. Да, это потенциальная проблема – как с точки зрения действий самого макроса, так и с точки зрения скачивания любых неизвестных файлов, программ, кодов и всего остального.
Так стоит ли овчинка выделки? Я считаю – да. Лезть в дебри не нужно, разбираться в простом коде не стоит большого труда, а часть типовых макросов вообще можно списать из книг типа “программирование на vba для чайников и кофейников”. Самое большое, что вам грозит - повесить Office. Или удивить коллег тем, что отчёт составился сам и ушёл сдаваться начальнику.