Содержание
Введение в тему. Что такое макрос.
Макрос – это текстовый механизм автоматизации, на пользовательском коде входящий в Excel, воплощённый программой Visual Basic for Application (VBA). Макросы можно написать вручную, или сгенерировать автоматически с помощью функционала макрорекодера.
Макрорекодер – сервис, выполняет запись действий пользователем и преобразует в пользовательский код встроенной программы VBA. Данный код, при необходимости в дальнейшем можно обрабатывать, вносить дополнительные изменения исходя из потребностей поставленных задач.
Данный функционал нужен для автоматизации одинаковых процессов, возможность использовать неограниченное количество операций, для получения определенных данных, расчета нужных функций, макросы можно написать самостоятельно или взять уже реализованные ранее в интернете, так как, это очень востребовано для работы с таблицами в Excel. Здесь найдете ответы, как реализовать макрос в Эксель, для использования необязательно знать о программировании, а также на примере познакомимся с его работой.
На данном сайте вы найдете и другие статьи по работе с программой Excel.
Как включить макросы в Excel
Отображение вкладки разработчик в ленте меню.
Изначально макросы в Excel отключены для пользователей. Чтобы управлять данным сервисом, нужно сделать настройки. Производим включение сервиса, для этого нажимаем кнопку <Файл> слева в вверху. Появится выпадающий список, там выбираем позицию <Параметры>.
Далее, откроется окно <Параметры>, переходим на позицию <Настроить ленту>, нажимаем на нее. Откроется окно в правой части, ставим галочку напротив пункта <Разработчик> в меню <Основные вкладки> и подтверждаем кнопкой <Ок>.
В строке меню появится еще одна вкладка, под названием <Разработчик>. При нажатии на данную кнопку высветится весь инструмент для автоматизации данного документа.
Разрешить использовать макросы в документе.
Следующий шаг, нам нужно разрешить использовать макросы в документе. По умолчанию данная возможность отключена. Аналогично заходим в <Файл>, нажимаем <Параметры> и открываем позицию <Центр управления безопасностью>. В открывшемся правом окне нажимаем кнопку <Параметры центра управления безопасностью>.
Следующий этап, в открывшемся окне выбираем пункт <Параметры макросов>, в правом окне появятся пункты с маркерами по макросам. Выбираем пункт <Включить все макросы>, и подтверждаем нажатием на кнопку <Ок>. Делаем перезапуск открытого документа Excel. Можно приступать к работе.
Запись макроса в Excel
Вставим код макроса в модуль
Используем готовый макрос, который объединяет ячейки в одну без потери данных в этих ячейках. Если использовать стандартные функции объединения, то данные будут сохранены только из левой верхней ячейки. Напишем машинный код на VBA для данной манипуляции.
В строке меню находим вкладку <Разработчик> и нажимаем на функциональную клавишу <Visual Basic>, также можно использовать горячие кнопки <ALT+F11> (Эти кнопки находятся на клавиатуре, совместное нажатие нескольких кнопок дает команду на запуск привязанного сервиса).
Откроются рабочие окна для программирования в VBA. В левом верхнем окошке, под названием Project, нажимаем правой кнопкой мыши по Вашему проекту, у меня он называется Macros.xlsm. Появится выпадающий список, в нем нажимаем по кнопке <Insert>, появится еще один выпадающий список, в нем выбираем <Module>.
После нажатия на кнопку <Module>., в окне <Project> появляется еще одна вкладка <Modules>. А в ней, еще один пункт <Module1>. Два раза нажимаем по данной позиции левой кнопкой мышки. В правом области экрана появляется окно <Modul1(Code)> для редактирования кода VBA. Записываем код, для соединения нескольких ячеек в одну, без потери данных в этих ячейках, путем соединения их через пробел. Называем макрос <ConnectCells>, или как будет удобно вам. Обязательно смотрим, куда вносим данные, так как мы записали данные в Модуль1, надпись окна будет <Modul1(Code)>.
Расширение файлов Excel которые содержат макросы
Для сохранения данных используем горячие кнопки, нажимаем две кнопки вместе <Ctrl+S>. Или можно нажать в ленте меню <Файл>, далее выбираем позицию <Сохранить>. Появится диалоговое окно, в поле <Тип файла>, выбираем из выпадающего списка <Книга Excel с поддержкой макросов>. Расширения файла будет <*.xlsm>, в данном файле будут работать написанные нами макросы. Далее называем наш файл, допустим <Macros> и подтверждаем кнопкой <Сохранить>.
Вставим код макроса в рабочий лист
Давайте сделаем выпадающий список в нескольких ячейках, допустим, c A6 и до A9. При выборе какого-нибудь значения в списке, выбранные данные будут записываться в ячейку, находящуюся справа от выпадающего списка, в той же строке. При повторном выборе будет записано следующее значение в соседнюю ячейку.
В редакторе VBA, в левом верхнем окошке <Project>, выбираем <Лист1>, будем работать с первым листом нашей таблицы. Если нужно записать макрос для другой страницы, тогда выбираем нужную. Двойным нажатием мышки по <Лист1>, справа появится окно для редактирования кода, заголовок у него будет <Лист1(Code)>. Записываем код и сохраняем данные, нажатием двух кнопок <Ctrl+S>.
Также можно записать код для всей книги, в окне <Project> выбираем пункт <ЭтаКнига>, и записываем нужный код в правом открывшемся окне <ЭтаКнига(Code)>.
Создадим пользовательскую функцию
Для демонстрации работы функции сделаем расчет силы тока по закону Ома, при напряжении сети 220 Вольт. Для этого в окне <Project>, щелкаем правой кнопкой мыши по рабочему листу <Лист1>, выбираем пункт <Insert>, далее нажимаем кнопку <Module>.
После нажатия сформируется еще один модуль <Module2>, он будет находиться в папке <Modules>, в том же окне <Project>. Заносим данные функции в открывшееся правое окно, далее сохраняем изменения, нажимаем значок дискеты или используем горячие кнопки <Ctrl+S>. Называться наша функция будет <Tok_I>.
Как запустить макросы в Excel
Теперь осталось воспользоваться созданными макросами. Давайте получим положительные эмоции, от работы наших сделанных решений. Макрос, который вводили в модули, запускаются пользователями.
Для начала объединим несколько ячеек в одну, все данные, которые были в данных ячейках, сохранятся в одной, которую получили. Для этого выделяем ячейки которые надо объединить, далее переходим в меню <Разработчик> и щелкаем по кнопке <Макросы>.
Появляется окно Макрос. Находим, название нашего макроса <ConnectCell>, выделяем его и выбираем с помощью кнопки <Выполнить>.
Если Макрос сделан правильно, то выбранные ячейки объединяться и текст будет полностью сохранен, значения будут представлены через пробелы.
Проверяем второй макрос, в ячейках A6 и по A9, делаем выпадающий список значений.
Берем одну ячейку из данного диапазона, выбираем в меню <Данные>, далее <Проверка данных>
Откроется диалоговое окно <Проверка вводимых значений>, вкладка <Параметры>, далее <Типы данных>, выбираем пункт <Список>. Появляется пункт <Источник>, вводим туда данные. Давайте сделаем это вручную, записываем данные через точку с запятой. Конечно, есть и другая возможность выбора, посмотрите статью, на данную тему.
Делаем проверку, данный макрос будет работать в скрытом режиме, пользователь производит действие. Выбирает любое значение из списка, макрос эти данные вставляет в ячейки справа от выбранного значения. Если в ячейке значение уже есть, то будет, производиться заполнение следующей ячейки. Макрос будет работать только для выбранных ячеек с выпадающим списком, таким образом, реализован код.
При проверке выбираем любое значение из выпадающего списка, оно появляется, в ячейке справа. Тогда макрос реализован правильно, получаем положительные эмоции.
Макросы в рабочей книге, работают по такому же принципу. Выполнение производится автоматически при работе пользователя в рабочей книге.
Следующая проверка макроса, мы сделали пользовательскую функцию. В документ мы ее вставляем через кнопку <Вставить функцию>. В данной реализации будем рассчитывать силу тока при напряжении 220 Вольт, указываем сопротивление в ячейки, и по закону Ома, наша формула будет выглядеть так,
I = U/R = 220/R.
Значение сопротивления указываем в ячейке A13, пускай будет 100 Ом. Выбираем ячейку вывода результата. Переходим на вкладку <Формулы> и нажимаем на кнопку <Вставить функцию>.
Откроется диалоговое окно <Вставка функции>. <Категория> ставим <Определенные пользователем>, в позиции <Выберите функцию> находим нашу запись <Tok_I>. Подтверждаем кнопкой <ОК>.
В следующем диалоговом окне выбираем ячейку, для которой нужно посчитать силу тока, и подтверждаем кнопкой <ОК>. И получаем расчет силы тока в нужной ячейке.
Среда программирования VBA Excel позволяет реализовывать макросы для различных версий программы Excel. Как видите, работать с кодом несложно, что даст легкость в дальнейшей работе с данными в данной программе.