- •2. Приложения Microsoft Office и общие принципы их организации
- •3. Visual Basic for Application – язык объектно-ориентированного программирования. Начальные сведения
- •4. Использование массивов при программировании в vba.
- •5. Ввод данных: из листа Excel и с помощью функции InputBox
- •6. Базовые понятия объектно-ориентированного программирования
4. Использование массивов при программировании в vba.
Вариант 3.
Из значений аргумента x и вычисляемой функции y сформировать два массива и определить максимальное значение функции на заданном отрезке и значение аргумента, при котором этот максимум достигается.
Программа и результат ее выполнения приведены на рис. 10, 11.
Рис. 10
Рис. 11
5. Ввод данных: из листа Excel и с помощью функции InputBox
Пример 3. Задана матрица А размером 5х5. Требуется сформировать два массива из значений и индексов максимальных элементов строк.
Вариант 1.
Исходные данные считываются из соответствующих ячеек листа Excel.
Программа и результат ее выполнения приведены на рис. 12, 13.
Рис. 12
Здесь вывод матрицы в последовательные строки осуществляется c использованием уже знакомой по предыдущим программам функцией Cells.
Рис. 13
Следующая программа демонстрирует формирование строки для вывода матрицы при помощи функции MsgBox. Строка формируется из различных элементов. Элементом может быть текст, числовое значение или переменная и управляющие символы, например, Chr(13) – символ перевода строки.
Рис. 14
После ввода очередного элемента матрицы его значение сразу присоединяется к строке Masv. После присоединения очередной строки матрицы к строке Masv добавляется символ перевода строки Chr(13) так что матрица в диалоговом окне на листе Excel будет выглядеть в привычном виде по строкам (рис. 15).
Рис. 15
Вариант 2 (см. Пример 3)
Исходные данные вводятся с клавиатуры. Программа и результат ее выполнения приведены на рис. 16, 17.
Рис. 16
Для ввода исходной матрицы используется функция InputBox. При выполнении этого оператора на экран буде выведено диалоговое окно, содержащее поле ввода, в которое и нужно последовательно помещать вводимые значения. На рис. 17 запечатлен момент ввода значения n.
Рис. 17
6. Базовые понятия объектно-ориентированного программирования
Рассмотрим более подробно особенности VBA как языка объектно- ориентированного программирования (ООП).
ООП оперирует с такими понятиями как
- объект
- класс объектов
- экземпляр класса
- методы объектов
- свойства объектов
- события
Главной структурной единицей в ООП является объект (программный объект), который объединяет в себе как данные, так и средства обработки этих данных - методы.
Программные объекты обладают свойствами, могут использовать методы и реагировать на события. Событие представляет собой произошедшее в системе конкретное явление важное настолько, что объект должен его распознать и отреагировать на него. В качестве реакции объекта на событие вызывается определенный его метод (процедура), который может изменить значения свойств объекта, вызвать другие его методы, изменить значения свойств других объектов и т.д. Примерами событий являются:
нажатие кнопки мыши;
нажатие клавиши на клавиатуре;
перемещение курсора мыши;
изменение значения времени в часах компьютера;
поступление сообщения по электронной почте и т.д.
Каждый объект обязательно принадлежит некоторому классу (также говорят, что «каждый объект является экземпляром некоторого класса»). Класс определяет единую структуру сходных по назначению элементов. В системе хранится программное описание каждого доступного к использованию класса, на основании которого при необходимости создаются отдельные экземпляры класса – объекты. Различные экземпляры класса обладают одинаковым набором методов и свойств, однако значения этих свойств у них могут отличаться.
Примерами других объектов являются, в частности, визуальные объекты, такие как рабочий лист (Sheet), ячейка (Cell), диапазон (Range).
Range является объектом VBA, который может представлять одну ячейку (например, Range(“А4”), целую строку или столбец рабочего листа или некоторый диапазон ячеек. Диапазон определяется указанием адресов первой и последней входящих в него ячеек. Например, если определен диапазон ячеек Range(“D4:F8”), то обращение функции Cells(1,1).Value означает обращение к ячейке D4, Cells(2,2).Value – ячейку E5 и т.д.
Семейство (или коллекция) представляет собой объект, содержащий несколько других объектов одного типа. Например, объект Sheets содержит все рабочие листы, объект Cells – все ячейки и т.д. Чтобы идентифицировать нужный элемент семейства, указывается либо его имя, либо номер. Например, Sheets(“Лист1”), Cells(i, j), где i, j имеют конкретные значения.
Метод определяет действие (процедуру), выполняемое одним объектом над другим объектом. Синтаксис применения метода в VBA:
Объект.метод
Например,
Range(“A1”).value
Cells(2, 3). value
Sheets(“Лист1”).select
Value означает, что содержимое ячейки будет восприниматься как значение.
Select означает – выбрать для работы заданный лист.
Свойства объекта – это информация о состоянии некоторой характеристики данного объекта (например, цвет ячейки). Некоторые свойства можно изменять, для других же предоставляется возможность только считывать их значения. Синтаксис для реализации первой возможности:
Объект.Свойство = ЗначениеСвойства
для реализации второй возможности:
Переменная = Объект.ЗначениеСвойства
События – это некоторые действия пользователя или действия, вызываемые другими программами, на которые реагирует объект. Например, к событиям можно отнести открытие и закрытие документа, щелчок мышью и т.п.
В заключение можно сказать, что VBA достаточно мощный и относительно несложный язык ООП, позволяющий конструировать профессиональные приложения для решения практически любых задач в среде Microsoft Windows и овладение им позволит вам расширить сферу использования компьютера в учебном процессе и в дальнейшей работе.
Простые примеры, рассмотренные в этой лекции, и ее ограниченный объем не позволили продемонстрировать все возможности языка и преимущества объектно-ориентированного программирования, которые наиболее ярко проявляются, конечно, в больших проектах.
