Макросы в Excel
Большинство специалистов, работающих с электронными таблицами, изо дня в день составляют свои отчеты, выполняя одни и те же действия. Несмотря на то, что это занимает у них не так много времени, так как все происходит уже на «автомате», все же можно уменьшить в разы трудозатраты, освободив значительную часть рабочего времени под другие задачи либо отдых.
Когда не следует записывать макрос?
Не для всех рутинных задач возможно использовать макросы. Например, если при определенных условиях алгоритм действий должен измениться, то простая запись макрорекодером Вам не поможет, так как в программу необходимо закладывать логику. Аналогичная ситуация возникает, когда исходные данные меняют свою структуру или могут содержать ошибки.
В принципе, автоматизировать процессы в случаях, описанных выше, можно, но потребуются знания логических конструкций языка VBA, но это тема другой статьи, относящейся к программированию. На данном этапе можно посоветовать разделить одну большую задачу на несколько мелких и определить, какие из них могут быть записаны, а какие следует выполнять самостоятельно.
Подготовка к созданию макроса
В связи с тем, что макросы в Excel записывают все действия пользователя (выделение ячеек, скроллинг таблицы, копирование и т.п.), то изначально требуется продумать все шаги, которые Вы хотите автоматизировать.
В качестве примера создадим простой макрос, задающей ячейке наш стиль. Определим какие шаги надо выполнить:
Больше никаких действий мы не должны производить. Если мы начнем запись макроса с выделения какого-либо диапазона, то при последующих запусках будет выделяться именно он, что не соответствует нашей цели.
Запись макроса
Теперь произведем саму запись. Выделите любую ячейку, которой необходимо задать стиль (это может быть любая ячейка, главное не меняйте ее во время записи). Перейдите на вкладку «Вид», найдите область «Макросы». Раскройте меню, кликнув по стрелочке, и выберите пункт «Запись макроса». Не обращайте внимание на появившееся окно, его параметры будут рассмотрены дальше, просто нажмите кнопку «OK».
Установите границы, цвет заливки, курсивное начертание текста и шрифт Times New Roman. Остановите запись, используя то же меню. Сейчас там должен находиться пункт «Остановить запись», – выберите его.
Запуск макроса и назначение горячих клавиш
После остановки макрорекодера, протестируйте работу нового макроса. Для этого кликнете по пиктограмме «Макросы» на ленте вкладки «Вид». Должно появиться следующее окно со списком все макросов открытых книг:
Нажмите кнопку «Выполнить». Выделенный диапазон должен поменять свое оформление на то, которое Вы определили во время записи.
Если запускать процедуру придется часто, то есть смысл назначить ей горячие клавиши. Кликните кнопку «Параметры» в том же окне. На экране появиться такой диалог:
- Имя макроса – его поменять здесь нельзя. Это возможно сделать только в коде записанной процедуры.
- Сочетание клавиш – укажите один символ того языка, в раскладке которого чаще приходиться работать, так как, например, сочетания Ctrl + q и Ctrl + й являются разными, но находятся на одной клавише. Так же имеет значение регистр символа. Если указать символ «Й», то горячими клавишами будет служить сочетание Ctrl + Shift + й.
- Описание – служит памяткой тому, кто записал макрос, и пояснением остальным.
Все выше указанные параметры можно задать при запуске макрорекодера.
Изменение макроса
Для редактирования записанных процедур требуются знания языка VBA, но в этом разделе все же рассмотрим простейший пример, чтобы понять сам принцип.
Отобразите окно с макросами, выберите любой из имеющихся и нажмите кнопку «Изменить». Программа Вас перенаправит в редактор Visual Basic в модуль с кодом выбранного макроса. Если Вы точно следовали статье, то на экране должен быть приблизительно следующий скрипт (зеленый текст, расположенный после апострофа, является комментарием и не выполняется программой):
Не будем ничего менять, а только дополним его двумя строками, которые будут выводить в строке статуса нужную информацию. Это позволит нам определить, что процедура завершила свою работу.
Дополните Ваш код в соответствии с нижеприведенным образцом:
Запустите макрос и убедитесь, что внизу страницы появилось наше сообщение:
Сохраняя книгу с макросами, необходимо выбрать расширение файла .xlsm, иначе все процедуры сотрутся.
Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы я мог развивать его дальше.
[expert_bq id=»1570″]Функция LastFile предназначена для поиска самого свежего файла в заданной папке производится поиск файлов по маске, и из найденных файлов выбирается тот, дата последнего изменения которого максимальна Пример использования функции Sub ПримерИспользованияФункции_LastFile Ищем на рабочем столе все файлы TXT, и выводим имя самого нового файла. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Программный комплекс, предназначенный для автоматизации учёта и администрирования сети связи телефонной или телекоммуникационной компании. Программа позволяет хранить и редактировать базу данных объектов (в виде файлов Excel), просматривать существующие трассы и формировать новые. Особенность программы — возможность учёта и администрирования узлов связи с нестандартными.
Получение списка файлов в папке и подпапках | Макросы Excel
- Имя макроса – его поменять здесь нельзя. Это возможно сделать только в коде записанной процедуры.
- Сочетание клавиш – укажите один символ того языка, в раскладке которого чаще приходиться работать, так как, например, сочетания Ctrl + q и Ctrl + й являются разными, но находятся на одной клавише. Так же имеет значение регистр символа. Если указать символ «Й», то горячими клавишами будет служить сочетание Ctrl + Shift + й.
- Описание – служит памяткой тому, кто записал макрос, и пояснением остальным.
Программа предназначена для объединения однотипных отчётов, сформированных программой 1С Обрабатываемые отчёты (файлы Excel) хранятся в одной папке, и имеют структуру, изображенную на скриншоте: В итоговой таблице, загруженные строки группируются (объединяются) при совпадении значений в 2 полях — «модель» и «название», при этом количество в объединяемых.


