Microsoft Excel: создание собственных макросов
В пакете офисных утилит Microsoft Office предусмотрена автоматизация наиболее часто используемых действий с помощью макросов, которые дают возможность записывать действия в программе: нажатия на клавиши клавиатуры и мыши, выбор меню и т.д.
Перед началом работы с макросами необходимо их активировать в настройках оформления внешнего вида Microsoft Excel. Обязательно должна быть открыта новая книга таблицы, для которой нужно создать макрос. Чтобы отобразить вкладку разработчика в ленте, необходимо в меню Файл открыть Параметры. Затем нужно во вкладке Настройка ленты выделить пункт Разработчик в список основных элементов ленточного меню.
Работа с новым модулем макроса в Microsoft VBA
В начале работы с собственным кодом макроса на языке разработки VBA необходимо сохранить файл в формате xlsm. Для этого нужно перейти по следующему пути: Файл > Сохранить как (далее нужно выбрать кнопку Обзор для версии Microsoft Office старше 2010 года выпуска).
Запускаем инструмент разработки на VBA под названием Microsoft Visual Basic for Applications, для этого необходимо во время работы с активным окном на клавиатуре нажать на комбинацию Alt + F11.
Далее в панели Project – VBAProject необходимо создать новый модуль, для этого необходимо вызвать контекстное меню правой клавишей мыши, и в всплывающем меню при наведении на Insert выбрать пункт Module.
В папке Module, находящейся на панели Project – VBAProject, после выполнения всех указанных ранее действий должен появиться указанный модуль, поэтому если случайно свернуть активное окно редактора, достаточно двойным кликом вызвать его обратно.
В качестве примера давайте напишем код макроса, который позволит нам заполнять ячейки данными и менять их форматирование по указанному адресу ячейки. Адрес ячейки определяется пересечением столбцов A,B,C... и строк 1,2,3...
Пройдемся по каждой строчке теле макроса. Строчка Sub является функцией, представленной в формате
Sub <имя функции>(<аргументы>)
<тело программы>
End Sub
Новый лист в книге электронной таблицы создается с помощью функции Worksheets.Add, который будет активным.
Чтобы обратиться к соответствующему адресу ячейки в книге необходимо вызвать объект Range(<адрес>), где <адрес> представляет собой ячейку, строку, столбец или группу ячеек. В ячейку A1 была присвоена строка Пользователь: .
Range("A1").Value = "Пользователь:"
В ячейку B1 при вызове значения свойства Application.UserName выводится имя, которое указывал пользователь при первом запуске Microsoft Excel. В ячейке B2 был возвращен результат запуска объекта Date, который возвращает текущую дату.
С помощью макросов можно настроить внешний вид ячейки, к которой было произведено обращение, также изменить цвет вводимого текста. На данный момент был изменен текст шрифта ячеек A1:A2 на синий цвет с помощью указания следующей команды:
Range("A1:A2").Font.Color = vbBlue.
Также был изменен цвет оформления ячейки для того же самого диапазона ячеек на желтый:
Range("A1:A2").Interior.Color = rgbYellow
Запустим созданный нами макрос с помощью клавиш Alt + F8 или в меню Разработчик > Макросы. В списке выберем макрос под названием information и щелкнем по кнопке Выполнить.
В ячейках, которые мы указали в нашей программе появились информация о пользователе Microsoft Office и текущее время запуска нашего макроса. Все работает! Можете сами проверить работу данного макроса, просто скачайте данный файл: Книга1.xlsm (не забудьте включить содержимое при запуске в панели предупреждения).
С помощью встроенных инструментов в VBA можно обращаться к определенным ячейкам на созданном ранее листе электронной таблицы и изменять стиль оформления находящейся там строки текста и внешнего вида ячейки. Для написания макросов можно использовать не только язык программирования VBA, но и записывать свои действия в файле. Об этом я расскажу в следующей статье.