Для чего нужны макросы в Excel
Макрос — последовательность команд, которую выполняет Excel. Инструмент позволяет многократно выполнять один раз записанное действие. Даже начинающий пользователь может разобраться с простыми инструкциями этих команд. Как работают макросы в Excel и какие задачи решают — рассказываем в статье.
Подготовлено_выпускником —>
Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев
Что такое макрос
Visual Basic for Applications (VBA) — язык программирования для приложений Microsoft Office, таких как Access, PowerPoint, Word и Outlook.
Макрос Excel — это действие или набор действий, которые можно записывать, называть, сохранять и выполнять столько раз, сколько требуется и когда это необходимо. Используя макросы, можно автоматизировать повторяющиеся задачи, связанные с обработкой данных и составлением отчетов о данных, которые необходимо выполнять неоднократно.
Например, вам нужно отправить отчет за месяц в отдел маркетинга.
- Открыть файл Данные.xls
- Отобрать данные за последние 30 дней
- Построить график
- Скопировать график в новую книгу
- Сохранить книгу в формате PDF
- Отправить файл начальнику
Разобраться, как действуют макросы, несложно. Например, есть команда Workbook(“Бюджет.xls”).Save
Эта команда сохраняет файл “Бюджет.xls”, который находится в книге “Workbook”.
| Книга Excel | Имя файла | Сохранить |
| Workbook | (“Бюджет.xls”). | Save |
Команда Worksheets(“Лист1”).Name = “Отчет”
Эта команда присваивает листу “Лист1” новое имя “Отчет”.
| Лист | Текущее имя листа | Имя | Новое имя листа |
| Worksheets | (“Лист1”) | Name | = “Отчет” |
Чтобы создавать макросы, не нужно идеальное знание английского языка. Достаточно запомнить несколько простых команд.
Как работают макросы в Excel и какие задачи они решают

Макросы VBA используют для автоматизации: от простых задач до сложных процессов создания отчетов с несколькими файлами.
Макросы помогают:
1. Решить задачи, связанные с данными.
Это все задачи по очистке и форматированию данных.
— Удаление дубликатов — создание списка уникальных значений
— Выделение или удаление пустых строк
— Создание формул с помощью макросов с использованием формулы процентного изменения
— Нахождение последней использованной ячейки, строки или столбца на листе
— Применение форматирования к экспорту необработанных данных
2. Автоматизировать задачи в файлах Excel.
Это перечисление всех листов, создание оглавления, скрытие определенных листов, открытие и закрытие рабочих книг и другие.
— Оглавление и галерея оглавлений
— Сохранение и закрытие всех открытых книг
3. Обслуживать задачи сводной таблицы.
Создание и обслуживание таблиц занимает много времени. Макросы VBA позволяют автоматизировать эти действия.
— Автоматическое форматирование чисел по умолчанию в сводных таблицах Excel
— Разворачивание и сворачивание граф таблицы
— Изменение форматирования даты для сгруппированных полей сводной таблицы
— Автоматизация надстройки PivotPal, которая была создана с использованием VBA и автоматизирует множество повторяющихся задач сводной таблицы.
4. Работать с пользовательскими формами и надстройками.
Пользовательские формы — это окна, которые открываются в Excel с интерактивными элементами управления. Их назначение — упрощать использование электронных таблиц другими пользователями.
5. Автоматизировать процессы Excel.
Например, можно создавать, обновлять или изменять несколько файлов.
Если вы хотите решать аналитические задачи с помощью Excel, пройдите бесплатное обучение по программе «Аналитик: продвинутый курс обработки данных в MS Excel». За два месяца вы изучите 7 образовательных модулей и разберетесь в технологиях и инфраструктуре BIG DATA, освоите методы обработки результатов. Научитесь анализировать данные в Excel и узнаете тонкости статистического анализа.
✅ Проект «Содействие занятости» проводит обучение по государственной лицензии.
✅ Лекции и практические занятия разработали эксперты — преподаватели вузов, основатели компаний и агентств, эксперты TV и бизнес-школ.
✅ Обучение проходит онлайн на образовательной платформе Odin.
✅ Выпускники получают документы установленного образца — подтверждение навыков и квалификации.
✅ На оплачиваемых стажировках слушатели приобретают опыт на реальных задачах, кейсы для портфолио. Активные стажеры могут получить предложение о работе.
✅ Выпускникам помогают с трудоустройством. В Центре карьеры на бесплатной консультации создадут план поиска работы и резюме, подготовят к собеседованиям.
Макросы Эксель автоматизируют ежедневную работу в программе. Изучите их и применяйте: всего один щелчок мыши сэкономит часы создания отчетов и работы с данными.
Поделиться:
Бесплатно помогаем найти работу мечты
Лучшая инвестиция — это инвестиция в себя, в свои знания и будущее. Оставьте заявку на бесплатное обучение прямо сейчас и станьте участником проекта.


Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев
Для чего нужны макросы в Excel и как их сделать

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

Маркетинг
Читайте также:
Что такое макросы

Макросы в Excel — это набор инструкций и команд, написанных на языке программирования Visual Basic for Applications (VBA), который используют для автоматизации задач и выполнения повторяющихся операций в Excel. То есть макросы позволяют записывать и сохранять последовательность действий и затем производить их повторно при необходимости. Это особенно актуально при обработке больших объемов данных, для которой требуются сложные операции, а их ручное выполнение занимает много времени и сил. При создании макроса пользователь записывает все необходимые действия, такие как ввод информации, форматирование ячеек, вычисления и прочие. Затем макрос сохраняется в книге Excel и может быть запущен в любой момент для автоматического выполнения заданного алгоритма. Макросы можно запустить при помощи горячих клавиш, панели инструментов или объектов листа. Функция полезна для широкого круга пользователей, таких как:
- Бизнес-аналитики и финансовые специалисты. Макросы позволяют автоматизировать аналитику и отчетность, финансовое моделирование и прогнозирование, фильтрацию и сортировку данных, генерацию графиков и диаграмм.
- Профессионалы в области IT, разработчики. Макросы позволяют создавать пользовательские функции и разрабатывать сложные логические алгоритмы.
- Топ-менеджеры и владельцы компаний. Макросы помогают в проектном менеджменте, подсчете бюджета, ресурсов и контроле рабочих процессов. Они подходят для создания дашбордов, быстрого автоматического сбора и анализа данных из разных источников, мониторинга производительности работников.
- Студенты. При подготовке курсовых и дипломных работ с макросами проще обрабатывать статистические данные, выполнять математические задачи, собирать сведения по разным дисциплинам, проводить автоматическую проверку результатов.
- Любой пользователь Excel, который регулярно выполняет повторяющиеся задачи. Если вы погрязли в рутинных операциях, хотите ускорить их выполнение, снизить вероятность ошибок, сконцентрироваться на более интеллектуальных задачах, рассмотрите возможность работы с макросами.
Что нельзя сделать с помощью макрорекодера
Макрорекордер Excel — это инструмент, который позволяет записать последовательность действий и преобразовать их в макрос. Однако есть некоторые операции, которые нельзя выполнить с помощью этого инструмента. Некоторые из них:
- Обработка условий и циклов. Макрорекордер не способен записывать логические условия (if-else) и циклы (например, циклы for или while).
- Работа с пользовательскими формами. Макрорекордер не может записывать взаимодействия с пользовательскими формами, такими как окна ввода данных или диалоговые окна. Для создания и обработки пользовательских форм необходимо написать отдельный код на VBA.
- Создание новых макросов во время записи. Во время записи макроса макрорекордер не позволяет создавать новые макросы или вставлять уже существующие. Он просто записывает текущую последовательность операций.
- Обработка ошибок. Макрорекордер не записывает ошибки или исключительные ситуации. Если происходит ошибка во время выполнения макроса, он останавливается, но пользователю не предоставляется информация об ошибке.
- Взаимодействие с другими приложениями. Макрорекордер не записывает взаимодействие с другими приложениями, такими как Microsoft Word или PowerPoint.
- Манипуляции с объектами и рисование. Рекордер не записывает операции, связанные с созданием или изменением форм, рисованием фигур или вставкой изображений.
- Работа с защищенными листами или рабочими книгами. Если лист или рабочая книга защищены паролем, макрорекордер не сможет записать операции на этих листах или в рабочей книге, пока защита не будет снята.
- Взаимодействие с внешними источниками данных. Если вам требуется записать операции, связанные с импортом или экспортом данных из Excel во внешние источники, возможности макрорекордера могут оказаться ограниченными.
Редактор VBA предоставляет расширенные возможности для создания сложных макросов — с их помощью можно автоматизировать задачи более продвинутого уровня.
Любому бизнесу полезно иметь специальные инструменты анализа и автоматизации. Доверьте сбор и обработку маркетинговых данных системе Сквозной аналитики Calltouch. Сервис собирает основные метрики с рекламных площадок, формирует подробные и наглядные отчеты по количеству сделок, лидов, объему прибыли и ROI. Их можно посмотреть в любой момент в личном кабинете. Если все источники трафика будут у вас под контролем, вам станет проще определять наиболее результативные каналы продвижения — вы вовремя скорректируете маркетинговую стратегию и оптимизируете бюджет.
Сквозная аналитика
Оценивайте эффективность всех рекламных кампаний в одном окне от клика до ROI
Вкладывайте в ту рекламу, которая приводит клиентов
Способы создания макросов в Excel
Существуют два основных способа создания макросов в Excel — написание кода с нуля и автоматическая запись. Рассмотрим алгоритм использования и преимущества каждого из них.
Написание кода макроса с нуля
Этот способ предполагает написание кода на языке программирования VBA с использованием редактора VBA в Excel. Основные шаги для создания макроса с нуля:
- В Excel откройте редактор VBA и выберите вкладку «Разработчик», а затем нажмите на кнопку «Редактор Visual Basic».
- Создайте новый модуль. В редакторе VBA выберите вкладку «Вставка», затем — «Модуль». Так вы сделаете новый модуль, в котором можно написать код макроса.
- Напишите код макроса на языке программирования VBA. Код может содержать инструкции для выполнения различных операций в Excel — манипуляций с данными, форматирования, вычисления и других.
- Сохраните макрос. Модуль будет находиться в книге Excel.
Этот способ обеспечивает большую гибкость и контроль над создаваемыми макросами. Используйте его, если вам требуется сложная логика при управлении операциями.
Автоматическая запись макросов
Этот способ позволяет быстро записывать операции в Excel и преобразовывать их в макрос.
Для автоматической записи макросов:

- Откройте вкладку «Разработчик» в Excel. Если она не отображается, откройте «Параметры Excel» и активируйте ее.
- Запустите запись. На вкладке «Разработчик» кликните «Записать макрос». Появится диалоговое окно, где можно задать имя макроса и выбрать место его сохранения.
- Выполните операции, которые нужно записать.
- Остановите запись макроса по окончании операции: вернитесь на вкладку «Разработчик» и нажмите на «Остановить запись».
- Сохраните макрос. Записанный макрос будет автоматически сохранен в выбранное вами место.
Автоматическая запись макросов удобна для выполнения простых и повторяющихся операций — копирования данных, форматирования и фильтрации. Однако она может иметь ограничения в отношении сложной логики или определенных действий, которые не предназначены для записи.
То, какой способ вы выберете — написание кода макроса с нуля и автоматическую запись, — зависит от ваших потребностей и опыта в программировании.
Как сделать макросы
Рассказываем, какие шаги нужно сделать для создания, включения и запуска макросов в Excel.
Включение макросов
По умолчанию в целях безопасности макросы отключены в Excel. Чтобы их включить, выполните следующие действия:
- Откройте Excel и выберите вкладку «Файл».
- Выберите «Параметры» (или «Параметры Excel» в старых версиях программы).
- В левой панели открывшегося окна выберите «Центр управления безопасностью».
- В центральной части окна выберите «Настройки центра управления безопасностью» и затем «Параметры макроса».
- Выберите «Включить все макросы» или «Включить все макросы с уведомлениями», если вам нужно получать предупреждения перед выполнением записанного действия.
- Нажмите «OK», чтобы сохранить изменения.


Запись макроса
После включения макросов вы можете начать их записывать:
- Откройте книгу Excel, в которой хотите создать макрос.
- Выберите вкладку «Разработчик». Если она не отображается, активируйте ее через «Параметры Excel».

- Нажмите на «Записать макрос». Появится диалоговое окно «Записать макрос».
- Введите имя макроса и выберите место его сохранения. Чтобы сохранить макрос только в текущей книге, выберите «Эта книга».
- Щелкните «OK» или «Запись начата».
- Выполняйте в Excel операции, которые хотите записать в макросе. Макрорекордер будет автоматически записывать ваши действия.
- По окончании операций вернитесь на вкладку «Разработчик» и нажмите на «Остановить запись» или «Запись остановлена».

Запуск макроса
Когда макрос будет записан, вы сможете его запустить. Для этого:
- Выберите вкладку «Разработчик» и кликните на «Макросы» (в старых версиях Excel она может называться «Просмотреть макросы»).
- В появившемся окне выберите макрос, который вы хотите запустить.
- Нажмите на кнопку «Выполнить» или «Запуск».
Обратите внимание: если вы используете запись макроса, то для достижения нужной функциональности может потребоваться его отредактировать или дополнить код в редакторе VBA.
Как редактировать макрос
Чтобы редактировать макрос в Excel, следуйте инструкции:

- Откройте редактор VBA.
- В Excel выберите вкладку «Разработчик».
- Перейдите в «Редактор Visual Basic» или просто «Visual Basic».
- Откроется редактор VBA, где вы можете редактировать код макроса.
- Найдите макрос, который вы хотите отредактировать. В редакторе VBA вы увидите обозреватель проекта (Project Explorer) слева.
- Разверните ветку «Эта книга» или другой объект, в котором хранится макрос. Вы увидите все модули, включая тот, который содержит макрос.
- Щелкните дважды по модулю с макросом, чтобы открыть его в редакторе.
- Внесите необходимые изменения в код макроса. Вы можете добавлять, изменять или удалять операции, чтобы изменить функциональность макроса.
- Сохраните изменения. Нажмите Ctrl + S или выберите «Файл» и «Сохранить» в редакторе VBA. Теперь в модуле зафиксированы изменения.
- Закройте редактор VBA. Нажмите Ctrl + Q или выберите «Файл» и «Закрыть и вернуться в Microsoft Excel» (в некоторых версиях Excel) для возврата в основной интерфейс.
При редактировании макроса необходимо быть внимательным и осторожным, чтобы не навредить работоспособности программы. Проверьте код после внесения корректировок и убедитесь, что он работает должным образом.
Рутинные действия вроде определения актуальных запросов клиентов можно автоматизировать при помощи речевой аналитики Calltouch Предикт. Сервис определяет пор звонящего, распознает, о чем говорят клиент и оператор, формирует полную текстовую расшифровку диалога, а также тегирует звонки. Все записи хранятся в системе, так что вы в любой момент можете их прослушать и проанализировать.
Макросы в Еxcel: зачем нужны и как пользоваться
Зачем нужны? Макросы в Еxcel предназначены для автоматического, а значит, быстрого и безошибочного выполнения повторяющихся действий. Работает все крайне просто: пользователь запускает записанную ранее команду, техника делает все остальное.
На что обратить внимание? В подавляющем большинстве случаев для работы с макросами никаких особых навыков не нужно. Но если требуется задать какую-то сложную команду, без хотя бы минимальных знаний языка программирования VBA (Visual Basic Application) не обойтись.
В статье рассказывается:
- Задачи макросов в Еxcel
- Алгоритм работы макросов
- Примеры использования макрокоманд в Excel
- Язык программирования для создания макросов в Excel
- Процедура записи макрокоманд
- Значения ячеек в макросах и расширения файлов с таблицей
- Некоторые минусы использования макрорекордера
- Преимущества написание кода вручную
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains
Задачи макросов в Еxcel
Макрос (еще его называют макрокомандой) напоминает скрипт, то есть программу без графического интерфейса, направленную на совершение определенных действий. Такие программы представляют собой команду, которую должна выполнить система.
Макросы в Еxcel помогают автоматизировать действия, наиболее часто выполняемые в электронных таблицах. К примеру, при составлении ежедневной отчетности нужно удалять из таблицы строки и добавлять столбцы. Если делать это вручную, то потребуется много времени, к тому же велика вероятность ошибок из-за совершения утомительных однообразных действий. Макросы выполнят ту же работу, но при этом существенно сократят потраченное на нее время, а также минимизируют вероятность ошибок.
Для чего еще нужны макросы в экселе? При помощи макрокоманд также можно:
- быстро находить нужные сведения в большом объеме информации;
- выполнять работу в нескольких продуктах Microsoft Office, так как одна макрокоманда может работать с разными программами офисного пакета;
- при необходимости самостоятельно создавать дополнительные функции, которые не были предусмотрены программой первоначально.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 24064
Сотрудникам, активно использующим Excel (менеджерам, экономистам, аналитикам, маркетологам и специалистам по рекламе), постоянно обрабатывающим и анализирующим большое количество данных, знание макросов существенно облегчит процесс работы.
Алгоритм работы макросов
Использование макросов происходит следующим образом:
- Создание макроса, то есть запись пользователем последовательности действий, которые необходимо выполнить в Excel.
- Обработка Excel записанных действий и создание для них общей команды.
- Использование макроса при необходимости выполнения той или иной операции. Для упрощения работы с макрокоманлами или автоматизации их запуска можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel.
Примеры использования макрокоманд в Excel
При помощи макрокоманд можно выполнять в таблицах любые запрограммированные действия. Приведем примеры макросов в Еxcel:
- Автоматизация повторяющихся операций. К примеру, при необходимости составления сводного отчета из нескольких файлов по единому алгоритму, можно создать и использовать соответствующий макрос в Еxcel.
- Объединение работы нескольких программ Microsoft Office. К примеру, одна макрокоманда поможет создать таблицу в Excel, вставить и сохранить её в документе Word, после чего отправить в Outlook.
- Поиск и перенос данных в ячейках таблицы Еxcel, особенно актуален при работе с несколькими объемными таблицами. Запуск макроса поможет максимально быстро найти и перенести нужную информацию.
- Форматирование и заполнение таблиц. К примеру, нескольким таблицам необходимо придать единообразный вид и дополнить данными. При работе с первой таблицей можно создать макрос, который затем использовать для остальных.
- Создание шаблонов для ввода данных. Макрокоманда пригодится, к примеру, при необходимости опроса сотрудников компании. Для этого следует сформировать шаблон опросника, а затем направить его сотрудникам по корпоративной почте.
- Создание новых функций в Excel. Базовые функции, доступные в таблицах – это те же макросы. Но если нужная операция отсутствует, ее можно создать самостоятельно.
Любые команды, как базовые, так и созданные пользователем самостоятельно, исходя из своих потребностей, можно комбинировать друг с другом.
Язык программирования для создания макросов в Excel
Макрос представляет собой код, созданный на принадлежащем Microsoft языке программирования VBA (Visual Basic Application). Это язык на основе Visual Basic, адаптированный для использования внутри пакета офисных программ. При помощи кода записывают команды, подлежащие исполнению.
Для вас подарок! В свободном доступе до 26.11 —>
Скачайте ТОП-10 нейросетей, которые помогут облегчить
вашу работу
Чтобы получить подарок, заполните информацию в открывшемся окне
Программы Microsoft Office распознают команды, записанные на языке VBA, поскольку он в них изначально встроен. Для создания макросов в эксель необходимо через меню войти в окно Visual Basic в офисном пакете.
При уверенном владении языком VBA можно создавать сложные макрокоманды в Excel. К примеру, если требуется записать в команду все элементы определенного диапазона значений, вычислить его длительность, добавив условие о максимальном количестве элементов диапазона и т. п., то команду придется писать в специальной среде. В дальнейшем же интерпретатор будет просто выполнять написанный код.
Однако для решения большинства базовых задач, автоматизации простых действий достаточно встроенного инструмента для работы с макросами – макрорекордера.
Создание макросов в Excel доступно пользователям, если им необходимо написать команду для совершения обычной последовательности действий, без дополнительных условий, использования переменных значений и т. п.
Процедура записи макрокоманд
Прежде чем приступить к созданию макросов при помощи макрорекордера, стоит узнать, что команда, записанная для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. То есть, при добавлении новой строки, макрос к ней не применится. Поэтому для выполнения длинной последовательности задач, лучше воспользоваться несколькими мелкими макросами.
Дарим скидку от 60%
на курсы от GeekBrains до 26 ноября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

Как сделать макрос в Excel? Ниже приведена инструкция по созданию макрокоманды:
- Зайти во вкладку «Разработчик», в группе «Код» кликнуть по кнопке «Запись макроса» (можно также воспользоваться быстрой комбинацией клавиш ALT+T+M+R.
- Задать имя макрокоманды в соответствующем поле. Чем проще и понятней имя, тем быстрей его в последствие можно будет найти. В названии команды первой пишется буква, затем можно использовать буквы, цифры, подчеркивания (их можно использовать для разделения слов). Имя не должно содержать пробелов, а также ссылок на конкретные ячейки таблицы Excel (в этом случае может появиться сообщение об ошибке, недопустимом имени).
- Для облегчения и ускорения вызова команды, можно в соответствующем поле задать сочетание клавиш, которые будут запускать макрос. Буквы можно использовать как строчные, так и прописные, лучше добавлять их к клавишам CTRL+SHIFT, последние будут заменять в таблицах Excel стандартное значение. Например, клавиши CTRL+V(вставить), не будут действовать в этом экземпляре Excel.
- Сохранить макрокоманду, выбрав книгу макросов в списке «Сохранить». Обычно команды сохраняются во вкладку «Эта книга». Для того, чтобы макрос можно было применять при использовании Excel, его следует сохранить в книгу «Личная книга макроса» (если ее ранее не было, то такая книга – Personal.xlsб – создается программой).
- Ввести краткое описание последовательности действий, за которые отвечает макрос в поле «Описание». Это не обязательное требование, однако оно может облегчить работу пользователям, которые будут знать, подходит ли им та или иная команда. Особенно актуально описание при создании большого количества макросов.
- Записать макрос, нажав кнопку «ОК».
- Совершить действия, которые будут записаны.
- Нажать кнопку «Остановить запись» в группе «Код» вкладки «Разработчик» (либо воспользоваться сочетанием клавиш ALT+T+M+R).
После этого, можно использовать макрос для работы с данными таблиц. Для того чтобы запустить макрокоманду в Excel, надо нажать на вкладку «Макросы». Выбрать во всплывающем окне нужный вариант среди всех записанных команд для работы с данными пользователя, нажать кнопку «Выполнить». После этого преобразования будут применены ко всем выбранным данным.
Основное преимущество макросов в Excel – их последовательное использование, которое минимизирует ошибки в данных. В то же время это преимущество может обернуться недостатком. При существенном изменении первоначальных данных, макрос может работать с ними некорректно. Поэтому стоит потратить время на проверку итоговых изменений. Макрокоманды идеально подходят для работы с последовательными и повторяемыми изменениями. При существенной смене формата и структуры данных, команда может дать сбой.
Значения ячеек в макросах и расширения файлов с таблицей
Написание макросов в чем-то схоже с написанием функций в Excel: ячейкам можно задавать как абсолютные, так и относительные значения. По умолчанию макрос использует абсолютные значения, т. е., при нажатии в макрорекордере на ячейку F7, он при выполнении всегда будет выбирать F7.
Только до 20.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»
Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне
Если необходимо, чтобы макрос в Excel работал с разными ячейками, то есть, с относительными значениями, то нужно активировать режим «Относительные ссылки» по кнопке, расположенной под кнопкой записи макрокоманды. В этом режиме макрос работает не с конкретной ячейкой, а с выделенной в данный момент пользователем.
При работе с макросами в Excel нужно помнить следующее. Обычный файл нельзя сохранить с макросом внутри, для сохранения необходимо изменить расширение файла на .xslm. Файлы, сохраненные с расширением .xlsx, макрокоманды не поддерживают.
Некоторые минусы использования макрорекордера
При помощи нужных макросов в Excel можно существенно сэкономить время, отказаться от рутинных действий, перепоручив их алгоритмам Excel. Однако этот инструмент имеет определенные ограничения. При помощи макрокоманд не получится:
- создать цикл или сложную последовательность действий, при которой, к примеру, для выполнения определенного действия, необходимо соблюдение какого-либо условия;
- придумать и написать с нуля команды, изначально отсутствующие в Excel;
- выполнить действия, не связанные с ячейками таблицы, поскольку макрорекордер работает только с ними, открывать, к примеру, новые листы он не может.
Однако перечисленные действия доступны при использовании языка программирования VBA. Написанный вручную код на Visual Basic, будет одинаково хорошо распознаваться и работать не только в Excel, но и почти во всех программах офисного пакета. Так, с помощью самостоятельно написанного макроса, можно загружать в таблицы Excel данные из Access. Работа вне таблиц Excel обладает определенной спецификой для кода, написанного пользователем.
Преимущества написания кода вручную
Для того чтобы вручную написать макрокоманду для Excel, нужно зайти во вкладку набора кода, например, кликнув на кнопку Visual Basic во вкладке «Разработчик». Окно для набора будет пустым, поэтому пользователю нужно будет самостоятельно открыть редактор для написания кода при помощи кнопки View Code в меню слева.
Также войти в редактор для написания кода можно, кликнув по вкладке «Макросы», ввести в верхней строке название нового макроса, нажать кнопку «Создать». При этом окно VBA откроется с пустой «заготовкой» для написания кода и открытым редактором, в котором будут прописаны начало и конец команды. Пользователю потребуется написать в редакторе код и сохранить его.
Преимущество самостоятельного написания макросов для Excel заключается еще и в следующем: при работе с макрорекордером в команду добавляются лишние, «мусорное» коды. Программы не оптимизированы, поэтому для выполнения команд требуется больше времени, чем для написанных вручную.
Почему при включенной надстройке think-cell медленно работает мой макрос Excel?
Распространенная проблема, из-за которой производительность макросов VBA снижается при использовании функции .Select . При выборе ячейки каждая отдельная надстройка Excel (в том числе и think-cell) получает уведомление о новой выбранной ячейке, что значительно снижает скорость работы макроса. Особенно это заметно сказывается на макросах, созданных с помощью средства записи макросов.
Microsoft также рекомендует избегать применения функции .Select в коде VBA для повышения производительности.
- Блог Office: «Самый быстрый способ сканирования большого диапазона в Excel»
- MSDN: Увеличение производительности в Excel 2007: «Обращайтесь к объектам Excel, таким как объекты Range, напрямую, избегая их выбора или активации» (см. раздел «Быстрые макросы VBA»).
Пример: Как уйти от использования инструкции .Select
Рассмотрим следующий простой макрос AutoFillTable :
Sub AutoFillTable() Dim iRange As Excel.Range Set iRange = Application.InputBox(prompt:="Enter range", Type:=8) Dim nCount As Integer nCount = iRange.Cells.Count For i = 1 To nCount Selection.Copy If iRange.Cells.Item(i).Value = "" Then iRange.Cells.Item(i).Range("A1").Select ActiveSheet.Paste Else iRange.Cells.Item(i).Range("A1").Select End If Next End Sub
Эта функция открывает поле ввода, в котором пользователь вводит диапазон ячеек. Функция проходит по всем ячейкам в диапазоне. При обнаружении заполненной ячейки, функция копирует содержимое ячейки в буфер обмена. Функция вставляет содержимое буфера обмена в каждую последующую пустую ячейку.
В AutoFillTable для копирования содержимого ячейки применяется буфер обмена. Поэтому в функции необходимо выбирать каждую обрабатываемую ячейку, чтобы Excel знал откуда и куда копировать данные. Рекомендуемое решение приведено в следующей функции AutoFillTable2 :
Sub AutoFillTable2() Dim iRange As Excel.Range Set iRange = Application.InputBox(prompt:="Enter range", Type:=8) Dim iCellMaster As Excel.Range For Each iCell In iRange.Cells If iCell.Value = "" Then If Not iCellMaster Is Nothing Then iCellMaster.Copy (iCell) End If Else Set iCellMaster = iCell End If Next iCell End Sub
В AutoFillTable2 есть два важных отличия от предыдущей реализации:
- Особенно обратите внимание на то, что в функции больше не проводится выбор ячейки. Вместо этого при обнаружении заполненной ячейки последняя сохраняется в переменной iCellMaster . После чего при обнаружении пустой ячейки все содержимое iCellMaster копируется в iCell .
- Для обхода каждой ячейки в диапазоне применяется цикл языка Visual Basic For Each … Next . Это также заметно повышает удобочитаемость кода.
