VBA для чайников
Шрифт:
* Чтобы продолжить выполнение с определенного места в процедуре, используйте в обработчике ошибок оператор Resume метка. Здесь метка означает ссылку на метку, размещенную где-то в процедуре, но, очевидно, не на метку, идентифицирующую начало программного кода обработчика ошибок. Ясно, что в данном случае вы должны задать соответствующую метку в процедуре.
Глава 10. Создание интерактивных VBA-форм.
В этой главе ...
~ Запуск и печать форм в процессе проектирования
~ Создание новой
~ Использование окна свойств - простейший способ установки свойств в VBA
~ Обзор важнейших свойств форм и элементов управления
~ Работа с подписями, текстовыми полями, кнопками и рамками
~ Отображение форм в VBA-программе и удаление их с экрана
~ Создание процедур обработки событий, обеспечивающих интерактивное взаимодействие с формами
С помощью VBA можно создавать очень привлекательные на вид окна, будь то панели управления, расширяющие возможности приложений, или простые вспомогательные диалоговые окна. По сравнению с созданием программного кода (или даже просто с печатанием приличного куска текста) создание пользовательской формы вообще может казаться игрою. Все же кое-какую работу при этом нужно выполнить и в некоторых случаях неплохо кое-что знать, чтобы не попасть в тупик. В этой главе рассказывается об основных шагах процесса создания формы: планирование, создание пустой формы в редакторе Visual Basic, добавление в форму элементов управления и работа со свойствами формы и элементов управления. Добавлять элементы управления в формы несложно, а вот чтобы заставить их делать то, что вам нужно, потребуется немного больше умственной работы и программирования. В этой главе мы также обсудим и тонкости процесса программирования форм.
Основы проектирования форм
Перед тем как на практике заняться проектированием форм, нелишне обсудить некоторые детали самого процесса. Знание этих деталей может ускорить процесс и уберечь от неверных решений.
Запуск форм
В процессе разработки формы ее можно запустить (т.е. активизировать выполнение и отобразить на экране) в любое время. Для этого выполните следующее.
1. Выберите окно формы.
Щелкните в окне формы или в окне программного кода, ассоциированного с формой.
2. Отобразите форму.
Нажмите <F5> или щелкните на кнопке Run (Выполнить).
После этих действий ваша форма появится на фоне VBA-приложения (а окно Visual Basic пока скроется из виду). Вы сможете проверить, что происходит после щелчков на форме и ее элементах управления. При этом не забывайте, что если ваша форма входит как часть в другую программу, то эта форма при ее автономном запуске может работать не так, как она работала бы в рамках выполнения содержащей ее программы.
Во время запуска окно формы должно быть выбранным. В редакторе Visual Basic маркеры выделения по периметру формы остаются видимыми и при переключении в другое окно редактора Visual Basic. Форма может казаться выделенной, но при этом не запускаться нажатием клавиши <F5>. Так что если вдруг на экране неожиданно возникнет диалоговое окно Macros (Макросы), просто щелкните сначала
Чтобы прекратить выполнение формы, которую вы еще не снабдили кнопкой Отмена, щелкните на ее закрывающей кнопке, находящейся с самого края, справа в строке заголовка формы. Или нажмите <Alt+Tab> и переключитесь в окно редактора Visual Basic, где можно щелкнуть на кнопке Reset (Остановить выполнение) панели инструментов.
Чтобы запустить форму в автономном режиме, вы должны находиться в окне редактора Visual Basic и использовать только что описанные приемы. Но форма создается для ее запуска из VBA-приложения, для чего вам нужно активизировать форму из программного кода, как рассказано дальше в настоящей главе, а сам программный код выполнить с помощью приемов, обсуждавшихся в главе 4.
Формы и элементы управления - программируемые объекты
Напомню еще раз, что формы и элементы управления - это полноценные объекты VBA. со своими свойствами, методами и событиями. Формы и элементы управления отличаются от других объектов лишь одним; вы можете менять их свойства в диалоговых окнах без программирования. Правда, для каждого элемента управления (за исключением некоторых надписей и фреймов) вам все же потребуется написать некоторый программный код. Да и формы тоже часто требуют программирования. Не забывайте об этом при обдумывании плана работ по своему проекту. Этап программирования в процессе создания форм обсуждается дальше в настоящей главе.
Один момент, касающийся форм в Microsoft Access: хотя для создания VBA программ в Access и используется стандартный язык VBA, а формы Access со своими элементами управления выглядят и работают точно так же, как и в других VBA-приложениях, формы Access все же не являются стандартными VBAформами. Свойства элементов управления в Access отличаются от свойств стандартных элементов управления VBA, поэтому формы, созданные в Access, и формы, созданные в других VBA-приложениях, не взаимозаменяемы.
Планирование форм для программы
Создавать формы в VBA легко и просто, но их проектирование в реальной программе требует тщательного планирования. Не забывайте, что формы являются частью большой программы, которая имеет вполне определенное практическое назначение. Поэтому, прежде чем начать забавляться с формами, уделите хотя бы немного времени следующим шагам.
1. Определите цель для своей программы.
Это потребуется, даже если в программе нет форм вообще, но если формы нужны, то при их создании всегда следует помнить о главной цели всей программы.
2. Для каждой из форм в программе определите ту специальную задачу, которую должна решать данная форма в русле главной задачи программы.
Какую информацию должна отображать форма, какая информация потребуется от пользователя и какие данные потребуются пользователю для того, чтобы решить, в какое русло направить выполнение программы дальше? Ответы на эти вопросы вы должны трансформировать в конкретные элементы формы.
3. Для каждой специальной задачи подберите тот элемент управления, который лучше всего подходит для ее решения.