Excel Vba Программирование
Кудрявцев Н.Г., Кудин Д. В., Беликова М. Программирование на VBA MS Excel: учебное пособие / Н. Кудрявцев, Д. Беликова - Горно-Алтайск: РИО ГАГУ, 2015. Рецензенты: Власов В.Н.,. Н., доцент кафедры общей информатики факультета информационных технологий Новосибирского государственного университета.
Немногие знают, что первая версия популярного продукта Microsoft Excel появилась в 1985 году. С тех пор он пережил несколько модификаций и востребован у миллионов пользователей по всему миру. При этом многие работают лишь с малой толикой возможностей этого табличного процессора и даже не догадываются, как им могло бы облегчить жизнь умение программирования в Excel. Что такое VBA Программирование в Excel осуществляется посредством языка программирования Visual Basic for Application, который изначально встроен в самый известный табличный процессор от Microsoft. К его достоинствам специалисты относят сравнительную легкость освоения. Как показывает практика, азами VBA могут овладеть даже пользователи, которые не имеют навыков профессионального программирования. К особенностям VBA относится выполнение скрипта в среде офисных приложений.
Недостатком программы являются проблемы, связанные с совместимостью различных версий. Они обусловлены тем, что код программы VBA обращается к функциональным возможностям, которые присутствуют в новой версии продукта, но отсутствуют в старой. Также к минусам относят и чрезмерно высокую открытость кода для изменения посторонним лицом.
Тем не менее Microsoft Office, а также IBM Lotus Symphony позволяют пользователю применять шифрование начального кода и установку пароля для его просмотра. Объекты, коллекции, свойства и методы Именно с этими понятиями нужно разобраться тем, кто собирается работать в среде VBA. Прежде всего необходимо понять, что такое объект.
В Excel в этом качестве выступают лист, книга, ячейка и диапазон. Данные объекты обладают специальной иерархией, т.е. Подчиняются друг другу.
Главным из них является Application, соответствующий самой программе Excel. Затем следуют Workbooks, Worksheets, а также Range.
Например, для обращения к ячейке A1 на конкретном листе следует указать путь с учетом иерархии. Что касается понятия 'коллекция', то это группа объектов того же класса, которая в записи имеет вид ChartObjects. Ее отдельные элементы также являются объектами.
Следующее понятие — свойства. Они являются необходимой характеристикой любого объекта. Например, для Range — это Value или Formula. Методы — это команды, показывающие, что требуется сделать. При написании кода в VBA их необходимо отделять от объекта точкой.
Например, как будет показано в дальнейшем, очень часто при программировании в 'Эксель' используют команду Cells(1,1).Select. Она означает, что необходимо выбрать ячейку с координатами Вместе с ней нередко используется Selection.ClearContents.
Ее выполнение означает очистку содержимого выбранной ячейки. Как начать Прежде всего требуется создать файл и сохранить его, присвоив имя и выбрав тип «Книга Excel с поддержкой макросов». Затем необходимо перейти в приложение VB, для чего достаточно воспользоваться комбинацией клавиш «Alt» и «F11». Далее:. в строке меню, расположенном в верхней части окна, нажимают на иконку рядом с иконкой Excel;.
выбирают команду Mudule;. сохраняют, нажав на иконку с изображением;.
пишут, скажем так, набросок кода. Он выглядит следующим образом. Sub program 'Наш код End Sub Обратите внимание, что строка «'Наш код» будет выделена другим цветом (зеленым). Причина в апострофе, поставленном в начале строки, который обозначает, что далее следует комментарий. Теперь вы можете написать любой код и создать для себя новый инструмент в VBA Excel (примеры программ см. Конечно, тем, кто знаком с азами Visual Basic, будет намного проще. Однако даже те, кто их не имеет, при желании смогут освоиться достаточно быстро.
Макросы в Excel За таким названием скрываются программы, написанные на языке Visual Basic for Application. Таким образом, программирование в Excel — это создание макросов с нужным кодом. Благодаря этой возможности табличный процессор Microsoft саморазвивается, подстраиваясь под требования конкретного пользователя. Разобравшись с тем, как создавать модули для написания макросов, можно приступать к рассмотрению конкретных примеров программ VBA Excel. Лучше всего начать с самых элементарных кодов. Пример 1 Задача: написать программу, которая будет копировать значение содержимое одной ячейки и затем записывать в другую.
Для этого:. открывают вкладку «Вид»;. переходят на пиктограмму «Макросы»;. жмут на «Запись макроса»;. заполняют открывшуюся форму. Для простоты в поле «Имя макроса» оставляют «Макрос1», а в поле «Сочетание клавиш» вставляют, например, hh (это значит, что запустить программку можно будет блиц-командой «Ctrl+h»).
![Excel vba программирование Excel vba программирование](https://www.excelcampus.com/wp-content/uploads/2014/09/Excel-VBA-Immediate-Window-Debug-Print-List-All-Empty-Sheets-Example.jpg)
Эксель Это Просто
Нажимают Enter. Теперь, когда уже запущена запись макроса, производят копирование содержимого какой-либо ячейки в другую. Возвращаются на исходную пиктограмму. Нажимают на «Запись макроса». Это действие означает завершение программки.
Далее:. вновь переходят на строку «Макросы»;. в списке выбирают «Макрос 1»;. нажимают «Выполнить» (то же действие запускается начатием сочетания клавиш «Ctrl+hh»). В результате происходит действие, которое было осуществлено в процессе записи макроса.
Имеет смысл увидеть, как выглядит код. Для этого вновь переходят на строку «Макросы» и нажимают «Изменить» или «Войти». В результате оказываются в среде VBA.
![Язык программирования vba Язык программирования vba](https://s1-page.ozstatic.by/1000/731/586/10/10586731_5.jpg)
Собственно, сам код макроса находится между строками Sub Макрос1 и End Sub. Если копирование было выполнено, например, из ячейки А1 в ячейку C1, то одна из строк кода будет выглядеть, как Range(“C1”).Select.
В переводе это выглядит, как «Диапазон(“C1”).Выделить», иными словами осуществляет переход в VBA Excel, в ячейку С1. Активную часть кода завершает команда ActiveSheet.Paste. Она означает запись содержания выделенной ячейки (в данном случае А1) в выделенную ячейку С1. Пример 2 Циклы VBA помогают создавать различные макросы в Excel. Циклы VBA помогают создавать различные макросы.
Предположим, что имеется функция y=x + x 2 + 3x 3 – cos(x). Требуется создать макрос для получения ее графика. Сделать это можно только, используя циклы VBA. За начальное и конечное значение аргумента функции берут x1=0 и x2=10. Кроме того, необходимо ввести константу — значение для шага изменения аргумента и начальное значение для счетчика. Все примеры макросов VBA Excel создаются по той же процедуре, которая представлена выше. В данном конкретном случае код выглядит, как: Sub programm x1 = 1 x2 = 10 shag = 0.1 i = 1 Do While x1.
В целом код будет выглядеть, как: Sub program For i = 1 To 10 Step 1 (можно записать просто For i = 1 To 10) Cells(i, 1).Value = i ^ 2 (т.е. В ячейку (i,1) записывается значение квадрата i) Next (в некотором смысле играет роль счетчика и означает еще один запуск цикла) End Sub. Если все сделано правильно, в том числе запись и запуск макроса (см.
Инструкцию выше), то при его вызове каждый раз будет получаться столбец заданного размера (в данном случае состоящий из 10 ячеек). Пример 4 В повседневной жизни сплошь и рядом возникает необходимость принять то или иное решение в зависимости от какого-то условия. Не обойтись без них и в VBA Excel.
Примеры программ, где дальнейший ход выполнения алгоритма выбирается, а не предопределен изначально, чаще всего используют конструкцию If Then (для сложных случаев) If Then END If. Рассмотрим конкретный случай. Предположим, необходимо создать макрос для 'Эксель', чтобы в ячейку с координатами (1,1) было записано: 1, если аргумент положительный; 0, если аргумент нулевой; -1, если аргумент отрицательный. Создание такого макроса для 'Эксель' начинается стандартным способом, через использование «горячих» клавиш Alt и F11. Далее записывается следующий код: Sub program x= Cells(1, 1).Value (эта команда присваивает x значение содержимого ячейки с координатами (1, 1)) If x0 Then Cells(1, 1).Value = 1 If x=0 Then Cells(1, 1).Value = 0 If x.
Язык Visual Basic for Application (VBA) – объектно-ориентированный язык программирования, базируется на командах и синтаксисе языка Basic. VBA встроен в офисную среду и позволяет манипулировать объектами всех офисных приложений. Язык VBA позволяет сочетать простые методы по созданию документов (использование команд меню или технология перетаскивания мышью) и программные методы для разработки эффективного пользовательского приложения. Чаще всего основным документом, вокруг которого пользователь строит свое приложение, является MS Excel. Поэтому данные лекции посвящены программированию именно для этого офисного пакета. На большом количестве примеров рассматриваются основные конструкции языка, приемы разработки макропроцедур. Если программа имеет в своем составе блоки, которые предполагают автономную обработку данных, или же в программе неоднократно повторяются некоторые последовательности операторов, рекомендуется разбить программу на ряд процедур, каждая из которых возьмет на себя часть реализации общего алгоритма решения задачи.
Проводится классификация процедур: основная процедура, которая вызывает другие процедуры, вызываемые процедуры, реализующие конкретные задачи проекта и процедуры обработки событий. В качестве вызываемых процедур рассматриваются процедуры общего типа и процедуры-функции. Особое внимание уделяется встроенным функциям. VBA, будучи объектно-ориентированным языком программирования, манипулирует объектами приложения.
Примерами объектов MS Excel являются: рабочий лист Worksheet, рабочая книга Workbook, диаграмма Chart и т.п. С точки зрения программирования в среде VBA объект обладает свойствами и методами.
Свойства описывают объект, а методы позволяют управлять объектом. Рассматриваются основные свойства и методы объектов и коллекций объектов. Представлены различные способы обращения к объектам: обращение к элементу коллекции, использование контейнеров для установки ссылки на объект, использование оператора With и объектных переменных.