Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_информатика.doc
Скачиваний:
23
Добавлен:
03.11.2018
Размер:
1.24 Mб
Скачать

Лабораторная работа № 9 Ознакомление с процедурами vba, предотвращающими появление ошибок

Цель работы: разработка процедур в VBA, предотвращающих появление ошибок

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

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

При составлении приложений важно предусмотреть, чтобы программа анализировала возможные ошибки, возникающие при ее выполнении и информировала пользователя о них.

Рассмотрим пользовательскую форму ( рисунок 1):

Рисунок 1. Диалоговое окно Деление»

В диалоговом окне поля «Числитель» и «Знаменатель» предусмотрены для ввода данных. Пользователь вводит в них по числу. При нажатии кнопки «Счет» программа делит число, введенное в поле «Числитель» на число, введенное в поле «Знаменатель» и выводит полученный результат в поле «Ответ».

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

Рисунок 2. Сообщение об ошибке VBA

Данное сообщение об ошибке связано с одной из инструкций в программе:

где аргументом функции CDbl должна быть строка, преобразуемая в число. Если в какое-либо из полей ничего не введено, по умолчанию из этого поля будет считываться пустая строка, которая не может быть преобразована в число и поэтому из-за функции CDbl происходит ошибка.

Такие ошибки ввода легко избежать, если производить в программе предварительную проверку: преобразуются ли вводимые данные в числа. Например, на рисунке 3 в поле «Знаменатель» было введено число с точкой-разделителем целой и дробной части, в то время как установки системы предусматривают запятую.

Рисунок 3. Пример сообщения о некорректном вводе данных

Поэтому процедура:

вызвала отображение диалогового окна «Деление» с сообщением об ошибке в знаменателе и установила фокус на поле «Знаменатель».

Если пользователь введет в поле «Знаменатель» нуль, то в этом случае также произойдет аварийная остановка программы. Для этого нужно провести проверку не только того, являются ли введенные данные числом, но и что это не ноль. Окончательная процедура выглядит так:

На рисунке 4 показан пример выдачи сообщения об ошибке в случае введения нуля в окно «Знаменатель».

Рисунок 4. Пример сообщения об ошибке в случае введения нуля в окно «Знаменатель».

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

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

2. Листинги программ с процедурами, предотвращающими появление ошибок

3. Выводы

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

Опишите методику оповещения пользователя об ошибке программы в VBA

Лабораторная работа № 10 Работа с рисунком в vba.

Цель работы: научиться использовать рисунки в программном коде VBA

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

  1. Воспроизвести приведенный ниже листинг программы

  2. Изменить программу так, чтобы в зависимости от выбора соответствующей кнопки OptionButton в диалоговом окне выводилась либо гистограмма, либо график, либо круговая диаграмма ( соответствующие графики построить в Excel и сохранить через Paint как точечные рисунки в формате .bmp). Для этого используйте команды: Private Sub OptionButton_Click() и End Sub

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

Приведем пример размещение рисунка в объекте. В редакторе форм создадим форму, показанную на рисунке 1.

Рисунок 1. Форма с рисунком

Инициализация диалогового окна производится при помощи процедуры обработки события Initialize формы UserForm. Отображение диалогового окна на экране осуществляется методом Show. Закрытие диалогового окна производится методом Hide.

Элемент управления Рисунок создается с помощью кнопки Image. Он используется для отображения графических файлов в форматах bmp, cur, ico, jpg, wmf.

Сначала создадим рисунок (например, гистограмму средствами Excel) и сохраним ее через Paint как точечный рисунок VBA3_F1.

Среди свойств объекта «Рисунок» есть свойство PictureSizeMode, которое устанавливает масштабирование рисунка. Если это свойство принимает значение fmPictureSizeModeZoom, то рисунок масштабируется с сохранением относительных размеров так, чтобы он помещался целиком внутри объекта.

В приведенном ниже листинге программы предусмотрено также сообщение об ошибке в случае невозможности поместить рисунок в диалоговое окно а также всплывающие подсказки для кнопок с помощью свойства ControlTipText

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

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

  2. Листинги программ VBA для работы с рисунками

  3. Выводы

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

  1. Опишите методику вставки рисунка в форму VBA

  2. Опишите методику выбора рисунка для формы VBA с помощью кнопки OptionButton