ОСНОВЫ программирования в среде VBA
Цельработы: получить понятие об основных объектах VBA, свойствах, методах; изучить основы программирования на языке VBA, получить опыт в написании простейших программ.
Методические указания
Основные понятия языка VBA.
VBA относится к языкам объектно-ориентированного программирования, которые можно описать как методику анализа, проектирования и написания приложения с помощью объектов.
В VBA имеется более 100 встроенных объектов:
1. Application – приложение Excel, имеет более 120 свойств и 40 методов, позволяет вызывать более 400 функций рабочего листа при помощи конструкции вида: Application.ФункцияРабочегоЛиста(Аргументы).
2. Woorkbook– рабочая книга, свойства и методы рабочей книги позволяют работать с файлами.
3. Woorksheet– рабочий лист.
4. Range– диапазон.
5. Selection– выбор, возникает либо как результат работы методаSelect, либо при вызове свойстваSelection;при работе с ним можно использовать свойства и методы объекта Range.
6. Userform– пользовательская форма.
7. Chart– диаграмма и другие.
Семейство (объект Collection) представляет собой объект, содержащий несколько других объектов, обычно одного и того же типа. Например, семейство Workbooks содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и идентифицируется либо по номеру, либо по имени. Объектная библиотека VBA имеет иерархическую структуру. Полная ссылка на объект представляет собой полный путь к объекту с учетом всех уровней вложенности этой структуры. Но обычно ограничиваются неявной ссылкой на объект, т.е. в ней опускаются все объекты, которые в данный момент активны.
Класс – это важнейшее понятие объектно-ориентированного программирования. Класс определяет имя объекта, его свойства и действия, выполняемые над объектом. Каждый объект, в свою очередь, является экземпляром класса.
Метод представляет собой действие, выполняемое над объектом. Метод может применяться ко всем объектам семейства.
Синтаксис применения метода: Объект.Метод.
Например,закрыть приложение: Application.Quit.
Свойство – это атрибут объекта, определяющий его характеристики (размер, цвет, положение на экране, доступность или видимость объекта и др.). Для того, чтобы изменить характеристики объекта, достаточно изменить значения его свойств. Свойства можно изменять одновременно у всех объектов семейства.
Синтаксис установки значения свойства:Объект.Свойство=ЗначениеСвойства.
Например, задать цвет текста в ячейке F2:
Range("F2").Font.Colorindex=43
Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью), для которого можно запрограммировать отклик. Суть программирования на VBA заключается в том, что в случае, когда пользователь производит какое-то воздействие на систему, в качестве отклика выполняется код созданной пользователем процедуры.
Пример 1. Выделить ячейку F2 и задать для нее цвет фона и текста.
Range("F2").Select ‘выделение ячейки F2
With Selection.Interior
.ColorIndex = 7 ‘цвет заливки, от 1 до 56
.Pattern = xlSolid‘тип фона (заливка сплошная)
End With
Selection.Font.ColorIndex = 43 ‘цвета текста ячейки F2
Пример 2.Задать атрибуты форматирования произвольного фрагмента текста (первых пять символов) выделенной ячейки.
With ActiveCell.Characters(Start:=1,Length:=5).Font
.Name = "Courier New" ‘гарнитура шрифта
.FontStyle = "курсив" ‘начертание
.Size = 12 ‘размер шрифта
.Strikethrough = False ‘зачеркивание (нет)
.Superscript = False ‘верхний индекс (нет)
.Subscript = False ‘нижний индекс (нет)
.OutlineFont = False
.Shadow = False ‘тень (нет)
.Underline = xlUnderlineStyleNone ‘подчеркивание
.ColorIndex = 43 ‘цвет шрифта
End With
Редактор VBA.
Вызов редактора VBA осуществляется при помощи команды Сервис –Макрос – редактор Visual Basic. Среда программирования VBA включает в себя окна: проекта, свойств, формы, отладки, локальных переменных, контрольного значения, программы, просмотра объектов и панели инструментов (рис. 11.1).
Окно проекта активизируется командой Вид – Окно проекта (View - Project Explorer) или нажатием кнопки Окно проекта(Project Explorer). В окне проекта отображается иерархическая структура файлов форм и модулей текущего проекта.
В проекте автоматически создается модуль для каждого рабочего листа, всей книги, а также для каждой пользовательской формы, макроса и класса. Модули делятся на два типа: стандартные(содержат макросы, добавляются в проект командой Вставка – Модуль(Insert – Module)) и модули объектов (модули, связанные с рабочей книгой, рабочими листами, формами и модули классов).
Формы создаются командой Вставка – Форма(Insert – UserForm), а модули класса – командой Вставка – Модуль класса (Insert – Module).
Рис.11.1 Окно редактора кода
Чтобы открыть окно для редактирования программного кода, следует дважды щелкнуть кнопкой мыши по значку файла в окне проекта. Это окно позволяет редактировать либо код отдельной процедуры, либо код всего модуля. Для того, чтобы выбрать один из этих режимов редактирования, следует воспользоваться одной из кнопок в левом нижнем углу окна редактирования Отдельная процедура (Procedure View), либо Все процедуры модуля (Full Module View).
Редактор кода позволяет существенно облегчить написание программ за счет способности автоматически завершать написание операторов, свойств и параметров. При написании кода редактор предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Ввод выбранного компонента в код программы завершается нажатием клавиши <Tab> либо двойным щелчком по выбранному компоненту. Автоматическое отображение списка компонентов осуществляется при установленном флажке Список компонентов(Auto List Members) вкладки Редактор (Editor) диалогового окна команды Сервис - Параметры(Tools - Options).
Кроме этого, редактор кода позволяет автоматически отображать на экране сведения о процедурах, функциях, свойствах и методах после выбора их имени. Для этого должен быть установлен флажок Краткие сведения (Auto Quick Info) на вкладке Редактор (Editor) диалогового окна команды Сервис - Параметры (Tools - Options).
Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши Enter, если установлен флажок Проверка синтаксиса(Auto Syntax Check) вкладки Редактор(Editor) диалогового окна команды Сервис - Параметры(Tools - Options).