- •Алгоритмизация и программирование на vba: основы программирования
- •Содержание
- •Лабораторная работа 1 Создание программы на vba
- •Цель работы
- •Общие сведения
- •Языки программирования
- •Объекты
- •События
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа 2 Реализация линейных алгоритмов в vba
- •Синтаксис:
- •Аргументы:
- •Инструкция DefТип
- •Константы
- •Допустимые имена
- •Инструкции vba
- •Форматирование строк программы
- •Перенос инструкции
- •Размещение инструкций в одну строку
- •Комментарии
- •Операции в vba
- •Арифметические
- •Строковые
- •Синтаксис:
- •Операции отношения
- •Логические операции.
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Синтаксис:
- •Аргументы:
- •Функции обработки строк
- •Функции времени и даты
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Синтаксис:
- •Аргументы:
- •Синтаксис:
- •Аргументы:
- •Работы с данными Host приложений.
- •Анализ макросов
- •Обращение к объектам.
- •Оператор «With».
- •Задание
- •Содержание отчёта
- •Контрольные вопросы
- •Пример выполнения работы Задание:
- •Текст программы:
- •Индивидуальные задания
Объекты
VBA относится к языкам объектно-ориентированного программирования (ООП).
ООП- методика анализа, проектирования и написания приложений с помощью объектов.
Объект- объединение данных и кода, предназначенного для их обработки в нечто целое.
Семейство(collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объектworkbooks(рабочие книги) содержит все открытые объектыWorkbook(рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например,worksheets(1) обозначает первый рабочий лист активной книги, аworksheets("Лист1") — рабочий лист с именем лист1.
Наследование- в объектно-ориентированном программировании - свойство объекта, заключающееся в том, что характеристики одного объекта (объекта-предка) могут передаваться другому объекту (объекту-потомку) без их повторного описания. Наследование упрощает описание объектов.
Полиморфизм- в объектно-ориентированном программировании - способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении.
Инкапсуляция- в объектно-ориентированном программировании - сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.
Иерархия объектов. Объектная библиотека VBA располагает более 100 различных объектов, находящихся на различных уровнях иерархии. Иерархия определяет связь между объектами и показывает пути доступа к ним. Информацию об иерархии объектов приложения можно почерпнуть из справки (Error: Reference source not found). Например, в MSWord: справка->справка по программированию->MSWordVBReference->MSWordObjectModel. Аналогично в структуре справки MSExcelи других приложений MSOffice. Помимо этого в справке приложения можно найти примеры использования каждого объекта и приёмы программирования для решения различных задач.
Объектная модель приложения MS Officeпредставляет собой то, что отражено в названии: в рамках этой модели в форме иерархической зависимости отражены все объекты, составляющее запущенное приложение, такие как само приложение - объектApplication, его свойства, надстройки (AddIns), документы (Documents), параметры документов (Name- имя,Password- пароль,PageSetup– свойства страниц, и т.п.), объекты документов (Paragraphs- параграфы,Lists- списки,Shapes- рисунки, и т.п.), параметры этих объектов и т.д. до последней буковки.
Доступ к нужному объекту, представленному в модели, осуществляется по ссылке, в которой используются имена объектов. Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Разделителями имен объектов в этом ряду являются точки, ряд начинается с объекта Applicationи заканчивается именем самого объекта. Например, полная ссылка на ячейку «A1» рабочего листа «лист1» рабочей книги с именем «Архив» имеет вид:Application.Workbooks("Архив").Worksheets("Лист1").Range("Al"). Приводить каждый раз полную ссылку на объект не обязательно. Обычно достаточно ограничиться только неявной ссылкой на объект. В неявной ссылке, в отличие от полной, объекты, которые активны в данный момент, как правило, можно опускать. В рассмотренном случае, если ссылка на ячейку A1 дана в программе, выполняемой в средеExcel, то ссылка на объектApplicationможет быть опущена, т. е. достаточно привести относительную ссылку:Workbooks("Архив").Worksheets("Лист1").Range("A1") Если рабочая книга Архив является активной, то ссылку можно записать еще короче:Worksheets("Лист1").Range("A1") Если и рабочий лист «Лист1» активен, то в относительной ссылке вполне достаточно ограничиться упоминанием только диапазона A1:Range("A1")
Методыпредставляют собой части объекта, выполняющие действия над данными объекта. Синтаксис применения метода: Объект.Метод В данном примере при помощи методаQuit(закрыть) закрывается приложение (объектApplication).Application.Quit
Метод можно применять ко всем объектам семейства. В данном примере к семейству chartobjects(диаграммы) рабочего листа «Лист1» применен методDelete(удалить), который приводит к удалению всех диаграмм с рабочего листа «Лист1»:Worksheets("Лист1").Chartobjects.Delete
Свойствапредставляют собой атрибут объекта, определяющий его характеристики, такие как размер, цвет, положение на экране и состояние объекта, например, доступность или видимость. Чтобы изменить характеристики объекта, надо просто изменить значения его свойств. Синтаксис установки значения свойства: Объект.Свойство = ЗначениеСвойства В следующем примере изменяется заголовок окнаExcelпосредством задания свойстваCaptionобъектуApplication:Application.Caption= "Пример" Свойство можно изменять сразу у всех объектов семейства. В приведенном ниже примере с помощью установки свойствуvisible(видимость) значенияFalse(ложь) все рабочие листы активной книги (семейство объектовworksheets) скрываются:Worksheets.Visible=FalseСреди свойств особое место занимают свойства, возвращающие объект, такой, как открытый документ, параграф документа или ячейку таблицы.