
- •Н.Г.Куфтинова программирование в среде vba
- •Н.Г.Куфтинова программирование в среде vba
- •Оглавление
- •Введение
- •Разработка алгоритма. Блок-схема. Структуры алгоритмов
- •Понятие алгоритма. Структуры алгоритмов
- •3. Базовая структура цикл.
- •Контрольные вопросы
- •Представление данных в памяти,типы данных, идентификаторы, переменные, массивы
- •Программный способ записи алгоритмов
- •Представление данных в памяти
- •Типы данных
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Контрольные вопросы
- •Структура программ на vba, операторы описания, присваивания
- •Структура программ на vba
- •Операторы описания
- •Oператоры присваивания
- •Контрольные вопросы
- •Понятие макроса, создание, отладка программы
- •Понятие макроса. Создание макроса
- •4.2. Отладка, использование среды для отладки программ
- •Средства отладки
- •Обработка ошибок выполнения
- •Перехват ошибок
- •4.6. Общие сведения о перехвате ошибок
- •Контрольные вопросы
- •Управляющие структуры vba
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Конструкция Select Case
- •Контрольные вопросы
- •Операторы цикла. Вложенные циклы
- •Операторы цикла
- •Вложенные циклы
- •Контрольные вопросы
- •Символьные данные. Операции и функции для работы с символьными данными
- •Символьные данные
- •Операции и функции для работы с символьным данными
- •Булевские вектора и операции для работы с ними
- •Контрольные вопросы
- •Подпрограмма-процедура
- •Общие процедуры
- •Создание новых процедур
- •Просмотр существующих процедур
- •9.4. Вызов процедур Sub
- •Процедуры в стандартных модулях
- •Подпрограмма-функция
- •10.1 Вызов процедур Function
- •10.2. Механизмы передачи параметров. Типы данных параметров. Передача параметров по значению
- •10.3. Передача параметров по ссылке
- •10.4. Неизвестное число параметров
- •10.5. Рекурсия
- •Контрольные вопросы
- •Использование объектов, их свойства и методы. Формы
- •Работа с объектами
- •Происхождение объектов. Основы работы с объектами
- •Установка значений свойств
- •Получение значений свойств
- •Использование методов в коде
- •Взаимосвязь объектов
- •Применение свойств и методов к членам наборов
- •Общие наборы в vba
- •Разработка формы. События и методы формы
- •Связь между объектами. Создание объектов. Использование и объявление переменных для объектов
- •Формы как объекты. Объект fso
- •Контрольные вопросы
- •12. Элементы управления в приложениях vba
- •12.1. Кнопки управления
- •12.2. Метки
- •12.3. Текстовые поля
- •12.4. Работа с текстом в текстовом поле
- •12.5. Флажки
- •12.6. Создание групп переключателей. Выбор переключателей
- •12.7. Комбинированные окна и списки
- •12.8. Полосы прокрутки как устройства ввода
- •12.9. Графическое окно в качестве контейнера
- •12.10. Элемент управления Image
- •12.11. Другие элементы управления
- •Контрольные вопросы
- •Литература
- •Приложение 1
- •2. Математические функции
- •4. Операторы циклов
- •Часть1. Обработка одномерного массива
- •Часть 2. Обработка двумерного массива
- •Приложение 2
Обработка ошибок выполнения
Как уже отмечалось выше, одной из основных проблем являются ошибки выполнения. Эти ошибки возникают при попытке произвести недопустимую операцию, например, при открытии несуществующего файла, делении на ноль, или при обработке неправильно введенных пользователем данных.
Так или иначе, при возникновении ошибки выполнение программы прерывается и выводится сообщение. К сожалению, это сообщение несет мало полезной информации, поскольку в нем указывается только недопустимая операция, а не причина возникновения ошибки. Еще хуже то, что программа не выполняется до конца и не произведены все необходимые действия.
Пользователь может без всякого умысла произвести действия, которые нанесут непоправимый вред данным. Следовательно, необходимо каким-то образом оградить себя от возникновения подобных ситуаций.
При программировании имеются два подхода:
- предотвращение ошибочных ситуаций;
- обработка ошибки с помощью специальной процедуры.
При разработке программ рекомендуется по возможности предотвращать возникновение ошибочных ситуаций. Начиная создание алгоритма макроса, следует ответить на ряд вопросов, например:
Существует ли файл, который требуется открыть?
Находится ли курсор в требуемой для выполнения макроса позиции?
Перехватываемые ошибки.
Перехват используется в том случае, когда предотвратить возникновение ошибочных ситуаций невозможно. Полный список перехватываемых ошибок приводится в разделе системы справочной информации Visual Basic "Перехватываемые ошибки" (Trappable Errors). Ниже описываются только некоторые из них.
КОД СООБЩЕНИЕ
3 Инструкция Return без Gosub
6 Переполнение
7 Не хватает памяти
9 Индекс выходит за пределы допустимого диапазона
11 Деление на 0
18 Произошло прерывание, вызванное пользователем
35 Процедура Sub, Function или Property не определена
53 Файл не найден
61 Переполнение диска
71 Диск не готов
91 Не задана объектная переменная блока With
97 Невозможен вызов процедуры Friend для объекта, не являющегося экземпляром определяющего класса
335 Невозможен доступ к системному реестру
368 Истек срок данного системного файла. Программе требуется файл более новой версии
402 Сначала необходимо закрыть самую верхнюю модальную форму
422 Свойство не найдено
440 Ошибка программирования объектов
448 Именованный аргумент не найден
482 Ошибка принтера
31032 Невозможно создать внедренный объект
Полный список ошибок приведен в Приложении учебного пособия.
Очевидно, что ни одно из показанных сообщений не дает пользователю исчерпывающих сведений о причине возникновения ошибки. Профессионал может точно определить проблему, используя систему справочной информации, а человеку, который захочет, например, написать письмо или ввести данные в отчет с помощью разрабатываемого приложения, такие сообщения непонятны. Предотвращая возникновение ошибок, или перехватывая их, можно исключить вывод стандартных сообщений. Вместо них появляется возможность либо отобразить собственную подсказку, либо попытаться исправить положение с помощью макроса. Ниже объясняется, как перехватить ошибку.