Основные элементы Visual Basic for Application

Лабораторная работа № 8

 

Цель работы: ознакомление с основными элементами языка Visual Basic for Application

Задание на выполнение работы: создать программные коды, позволяющие воспользоваться основными элементами VBA

Теоретические сведения:

 

VBA относится к языкам объектно-ориентированного программирования.

Рабочий лист (Worksheet), диапазон ячеек (Range), диаграмма (Chart), форма (UserForm) являются объектами. Семейство (Collection) представляет собой объект, содержащий несколько других объектов.

Класс обычно описывается как проект, на основе которого впоследствии будет создан конкретный объект. Класс определяет имя объекта, его свойства и действия, выполняемые над объектом, а объект является экземпляром класса.

Действие, которое можно выполнять над объектом, представляет собой метод. Например, чтобы закрыть (Quit) объект приложение (Application) выполним команду:

Application.Quit

Свойство представляет собой атрибут объекта, определяющий его характеристики, такие как размер, цвет, положение на экране и состояние объекта, например, доступность или видимость. Чтобы изменить характеристики объекта, надо просто изменить значения его свойств. Например, чтобы закрыть все рабочие листы активной книги установим свойству Visible (видимость) значение False (ложь):

Worksheets.Visible=False

Событие представляет собой действие, распознаваемое объектом ( например, щелчок мышью или нажатие клавиши), для которого можно запрограммировать отклик. Если для отклика не запрограммирована соответствующая процедура, то событие остается безответным. Например, на экране создан объект – кнопка «Выход», при нажатии на которую должна закрываться программа. Но если соответствующая процедура не написана, то при нажатии кнопки ничего не произойдет.

Порядок выполнения работы:

В качестве примера рассмотрим метод Evaluate объекта Worksheet. Этот метод преобразует выражение в объект или значение. Используется при вводе формул и ячеек из диалоговых окон. В приведенном примере в поле ввода первого появившегося диалогового окна вводится ссылка на ячейку, например, А1, процедура считывает значение и отображает его в диалоговом окне. После этого в поле ввода следующего диалогового окна надо ввести какое-либо арифметическое выражение, например sin(A1)^2. Процедура вычислит значение этого выражения и отобразит в диалоговом окне.

 

При выполнении этой программы появляется диалоговое окно ввода имени ячейки, в которую заранее ( до запуска программы) введено какое-либо число ( рисунок 1). При нажатии ОК происходит считывание значения из ячейки и отображение его в диалоговом окне ( рисунок 2). При нажатии ОК появляется диалоговое окно ввода функции ( рисунок 3) и затем функция рассчитывается для заданного значения и в диалоговом окне выдается результат ( рисунок 4).

Рисунок 1

Рисунок 2

Рисунок 3

Рисунок 4

 

Элемент управления ListBox (список) применяется для хранения списка значений. Свойство MultiSelect позволяет устанавливать режим, при котором допускается выбор нескольких элементов из списка. Свойство Selected предоставляет возможность проверить, выбран ли элемент с указанным индексом. Приведем пример использования этих свойств при вычислении среднего значения выбранных в списке элементов.

Создадим форму, показанную на рисунке 5, и напишем для нее следующую программу:

Рисунок 5

При запуске программы на выполнение выбираем несколько элементов из списка и нажимаем кнопку «Счет». При этом в текстовом окне выдается результат – среднее выделенных элементов списка. Обратите внимание, что кнопка OptionButton1 сделана всегда активной, а текстовое поле всегда пассивно ( рисунок 6).

Рисунок 6.

 

Рассмотрим способ использования переключателей OptionButton на примере классической игры «Орел и Решка». Выбирая один из двух переключателей, игрок загадывает один из вариантов: орел ( 1 для компьютера) или решка (0 для компьютера). Не зная о выборе игрока, компьютер синтезирует с равной вероятностью либо 0 либо 1, то что моделирует бросание монеты. Если Игрок угадал правильную сторону монеты, подброшенную компьютером, то он выигрывает. В противном случае выигрывает компьютер. Компьютер информирует игрока о результате игры.

Создаем форму диалогового окна игры, показанную на рисунке 7.

Рисунок 7

Для этой формы пишем программу:

При запуске программы выбираем переключатель либо «Орел», либо «Решка» и нажимаем кнопку «Бросание монеты». Зависимости от результата испытания выдается сообщение, показанное на рисунках 8,а,б.

 

Рисунок 8, а Рисунок 8, б.

 

Отчет должен содержать:

1. Задание на выполнение работы

2. Программы VBA, приведенные в описании лабораторной работы

3. Выводы

Контрольные вопросы

1. Дайте определение терминов VBA: объект, семейство, класс, свойство, событие