Стив Каммингс - VBA для чайников
- Название:VBA для чайников
- Автор:
- Жанр:
- Издательство:Компьютерное издательство Диалектика
- Год:2002
- Город:Москва
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стив Каммингс - VBA для чайников краткое содержание
Эта книга поможет освоить интегрированную среду разработки VBA и научиться программировать в VBA с использование объектов, их свойств, методов и событий. Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярный офисных приложений, включая приложения Office XP, так и для создания собственных приложений.
Книга рассчитана на тех, кто собирается быстро и без лишних усилий научиться программировать для Windows, используя VBA.
VBA для чайников - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Но, как говорится, содрать с капусты листья можно многими способами. В нашем случае есть варианты- события Initialize (Инициализация) и Activate (Активизация) формы.
Программный код, помещенный в процедуры обработки этих событий, выполняется автоматически, когда случаются соответствующие события. Выбрать между этими событиями помогут следующие правила.
* Используйте событие Initialize для программного кода, который должен выполняться только при первой загрузке формы.
* Используйте событие Activate для программного кода, который должен выполняться при каждом отображении формы на экране (включая и первое отображение).
Создание программного кода для процедур обработки событий обсуждается ниже, в разделе "Главные события".
Используйте метод Hide (Скрыть), чтобы закрыть форму и таким образом получить возможность вернуться в документ VBA-приложения или активизировать другую форму. Это делается следующим оператором:
FormErly.Hide
Правда, метод Hide можно использовать не в любом месте программы. Если форма модальная, метод Hide нужно поместить в процедуру обработки события, принадлежащую самой форме.
Как упоминалось раньше в настоящей главе, если открыта модальная форма, выполняться могут только процедуры, связанные с этой формой.
И кстати, при вызове метода Hide в процедуре обработки события, принадлежащей этой форме, имя формы указывать не требуется - VBA достаточно сообразителен, чтобы понять, что в данном случае метод Hide принадлежит именно этой форме. Поэтому в процедуре обработки события, принадлежащей форме, можно просто напечатать Hide и эта форма исчезнет.
Чаше всего оператор Hide размещают в конце процедуры обработки события Click (Щелчок) для КНОПОК ОК, Отмена или Закрыть. Примеры вы найдете ниже, в разделах
"Добавление кнопок Закрыть и Отмена" и "Программирование кнопки ОК".
Скрытая форма не удаляется из памяти, вы сможете отобразить ее снова без лишних задержек с помощью метода Show в любое время.
Если известно, что форма больше в программе не понадобится, уничтожьте ее совсем, удалив из памяти. В небольших VBA-программах в этом нет необходимости, но когда ваши программы станут большими и память будет как награда, уничтожение ненужных форм приобретет очевидный смысл.
Как и для загрузки формы, для выгрузки формы из памяти используется не метод, я оператор Unload Formation.
Выгрузка формы удаляет ее и с экрана, если до этого форма была видима.
Если известно, что форма больше в программе не понадобится, замените метод Hide в процедурах обработки событий формы на оператор Unload. В этом случае оператор Unload Me эквивалентен оператору Unload имя_формы, поскольку ключевое слово Me представляет текущую форму.
Однако, в отличие от метода Hide, оператор Unload применим и к модальным формам, которые не присутствуют на экране. С помощью оператора Unl oad, размещенного в главной части программы (т.е. в процедуре, не связанной с формами), можно выгружать любые формы, в том числе и скрытые модальные формы.
Главные события
Когда выполняется процедура типа Sub, не отображающая форм, ваш программный код полностью контролирует, что и когда делает программа. Но если на экране отображается форма, программа переходит в каком-то смысле в пассивное состояние, ожидая инструкций от пользователя.
После каждого нажатия клавиши, перемещения мыши или щелчка на кнопке генерируется программное событие. Ваша программа регистрирует каждое такое событие и проверяет, не содержит ли программный код формы процедуру, связанную с этим событием. Если подходящей процедуры нет, событие пройдет для программы бесследно. Но если форма имеет процедуру, соответствующую событию, то программа сразу же оживет и честно выполнит эту процедуру.
Процедура обработки события может делать все, что и любая другая процедура: вычислять значения переменных, манипулировать свойствами и методами объектов, загружать и отображать другие формы. После завершения выполнения процедуры обработки события контроль возвращается к форме. Программа перейдет в состояние ожидания следующего события.
Формы VBA и элементы управления в них могут распознавать самые различные события. (На жаргоне VBA, когда говорится, что объект "имеет" события, подразумевается, что объект может регистрировать и распознавать эти события.) У форм и элементов управления есть одинаковые события, но набор событий каждого объекта индивидуален. Часто встречающиеся события приведены в табл. 10.1.
Таблица 10.1. Избранные события форм и элементов управления
Событие |
Объекты, которые распознают событие |
Когда происходит событие |
Activate |
Формы |
Каждый раз, когда форма активизируется (получает фокус ввода) |
AddControl |
Формы, фреймы и формы с множеством страниц |
При добавлении в объект элемента управления во время выполнения формы |
AfterUpdate |
Все "действующие" элементы управления, кроме кнопок |
После установки нового значения для элемента управления, в момент перехода от данного элемента управления к другому |
Change |
Все "действующие" элементы управления, кроме кнопок |
При изменении значения свойства Value элемента управления |
Click |
Формы и все типы элементов управления |
После щелчка кнопкой мыши на объекте |
DblClick |
Формы и все типы элементов управления |
После двойного щелчка кнопкой мыши на объекте |
DropButtonClick |
Текстовые поля и поля со списком |
При появлении раскрывающегося списка (после щелчка на кнопке раскрытия или нажатия клавиши ) |
Enter |
Все типы элементов управления |
Непосредственно перед тем, как элемент управления получит фокус ввода от другого элемента управления в той же форме |
Error |
Формы и все типы элементов управления |
Когда возникает ошибка, но информация о ней не может возвратиться программе |
Exit |
Все типы элементов управления |
Непосредственно перед тем, как фокус ввода перейдет от данного элемента управления к другому в той же форме |
KeyUp, KeyDown, Keypress |
Формы и все типы элементов управления |
При нажатии или отпускании кнопки |
Layout |
Формы, фреймы и формы с множеством страниц |
При изменении размеров объекта |
RemoveControl |
Формы, фреймы и формы с множеством страниц |
При удалении элемента управления из объекта во время выполнения формы |
Scroll |
Формы, фреймы и формы с множеством страниц, а также текстовые поля, списки и поля со СПИСКОМ |
При изменении положения бегунка полосы прокрутки |
Интервал:
Закладка: