Следующий фрагмент программного кода отображает исключительно вежливое сообщение об ошибке, частью которого является строка, предоставленная свойством Description:
strМоеСообщение = "С сожалением сообщаю Вам, что " _
& "в эту в целом замечательную программу все же " _
& "вкралась ошибка. Как сообщает наш надежный " _
& "источник (VBA), причиной беспокойства является "
MsgBox strМоеСообщение & Err.Description
Некоторые VBA-приложения предлагают свои объекты и функции, с помощью которых можно получить дополнительную информацию о специфических проблемах данного приложения. Например, Microsoft Access предлагает для этого специальный объект Error.
После того как обработчик ошибок завершит свою работу, вам придется решить, вернуться ли в процедуру, в которой произошла ошибка, чтобы продолжить выполнение этой процедуры, или передать управление той процедуре, из которой была вызвана процедура с ошибкой.
Если вы предпочтете продолжить выполнение текущей процедуры, поместите в обработчик ошибок оператор Resume. Оператор Resume имеет несколько вариантов.
* Если просто напечатать Resume в отдельной строке, то этот оператор вернет управление в процедуре тому же оператору, который вызвал ошибку. Это разумно, если обработчик ошибок решает проблему и вы уверены, что ошибка не возникнет вновь.
* Чтобы пропустить оператор, ставший причиной появления ошибки, используйте в обработчике ошибок оператор Resume Next. Тогда выполнение продолжится с оператора, следующего непосредственно за оператором, вызвавшим ошибку.
* Чтобы продолжить выполнение с определенного места в процедуре, используйте в обработчике ошибок оператор Resume метка. Здесь метка означает ссылку на метку, размещенную где-то в процедуре, но, очевидно, не на метку, идентифицирующую начало программного кода обработчика ошибок. Ясно, что в данном случае вы должны задать соответствующую метку в процедуре.
Глава 10. Создание интерактивных VBA-форм.
В этой главе ...
~ Запуск и печать форм в процессе проектирования
~ Создание новой формы и размещение в ней элементов управления
~ Использование окна свойств - простейший способ установки свойств в VBA
~ Обзор важнейших свойств форм и элементов управления
~ Работа с подписями, текстовыми полями, кнопками и рамками
~ Отображение форм в VBA-программе и удаление их с экрана
~ Создание процедур обработки событий, обеспечивающих интерактивное взаимодействие с формами
С помощью VBA можно создавать очень привлекательные на вид окна, будь то панели управления, расширяющие возможности приложений, или простые вспомогательные диалоговые окна. По сравнению с созданием программного кода (или даже просто с печатанием приличного куска текста) создание пользовательской формы вообще может казаться игрою. Все же кое-какую работу при этом нужно выполнить и в некоторых случаях неплохо кое-что знать, чтобы не попасть в тупик. В этой главе рассказывается об основных шагах процесса создания формы: планирование, создание пустой формы в редакторе Visual Basic, добавление в форму элементов управления и работа со свойствами формы и элементов управления. Добавлять элементы управления в формы несложно, а вот чтобы заставить их делать то, что вам нужно, потребуется немного больше умственной работы и программирования. В этой главе мы также обсудим и тонкости процесса программирования форм.
Основы проектирования форм
Перед тем как на практике заняться проектированием форм, нелишне обсудить некоторые детали самого процесса. Знание этих деталей может ускорить процесс и уберечь от неверных решений.
В процессе разработки формы ее можно запустить (т.е. активизировать выполнение и отобразить на экране) в любое время. Для этого выполните следующее.
1. Выберите окно формы.
Щелкните в окне формы или в окне программного кода, ассоциированного с формой.
2. Отобразите форму.
Нажмите или щелкните на кнопке Run (Выполнить).
После этих действий ваша форма появится на фоне VBA-приложения (а окно Visual Basic пока скроется из виду). Вы сможете проверить, что происходит после щелчков на форме и ее элементах управления. При этом не забывайте, что если ваша форма входит как часть в другую программу, то эта форма при ее автономном запуске может работать не так, как она работала бы в рамках выполнения содержащей ее программы.
Во время запуска окно формы должно быть выбранным. В редакторе Visual Basic маркеры выделения по периметру формы остаются видимыми и при переключении в другое окно редактора Visual Basic. Форма может казаться выделенной, но при этом не запускаться нажатием клавиши . Так что если вдруг на экране неожиданно возникнет диалоговое окно Macros (Макросы), просто щелкните сначала в нем на кнопке Cancel (Отмена), а затем в любом месте нужной вам формы, прежде чем повторить попытку ее запуска.
Читать дальше