- •Объект Debug и его методы
- •Метод Print
- •Метод Assert
- •Доказательство правильности программ
- •Условная компиляция и отладка
- •Директива #const
- •#If … Then … #Else директива
- •Ошибки периода выполнения и их обработка
- •Модель управления ошибками в языке vba.
- •Оператор On Error
- •Оператор Resume
- •Объект Err
- •Метод Clear
- •Метод Raise
- •Класс и обработка ошибок
- •Обработчики ошибок и вложенные вызовы процедур
- •Структура обработчика ошибок
- •Функция CvErr
- •Оптимизация программ
- •Приемы оптимизации кода
- •Объявление переменных
- •Математические операции
- •Строковые операции
- •Проектирование интерфейса. Меню
- •Общие объекты Office 2000
- •Коллекция CommandBars
- •Свойства и методы коллекции CommandBars
- •Свойства и методы объекта CommandBar
- •Коллекция CommandBarControls и ее элементы
- •О роли интерфейса
- •Создание собственных и модификация встроенных меню
- •Немного терминологии
- •Возможности настройки и изменения системы меню
- •Создание собственного головного меню
- •Использование диалогового окна Настройка
- •Создание меню с помощью vba
- •Добавление выпадающих меню
- •Использование диалогового окна Настройка
- •Как добавить встроенное меню
- •Добавление выпадающего меню с помощью vba
- •Добавление подменю
- •Вставка и группировка команд
- •Добавление встроенной команды с помощью окна Настройка
- •Добавление собственной команды с помощью окна Настройка
- •Добавление команд с помощью vba
- •Пример построения документа с собственным меню
- •Группировка команд меню
- •Удаление команд меню
- •Удаление команды с помощью окна Настройка
- •Удаление команды с помощью vba
- •Как восстановить удаленные встроенные компоненты меню
- •Изменение меню во время работы программы
- •Вывод собственной панели меню
- •Динамическое изменение видимости команд меню
- •Управление доступом к командам меню
- •Переименование команды меню
- •Диалоговые окна и элементы управления
- •Общие сведения и применение
- •Встроенные диалоговые окна Коллекция Dialogs и объект Dialog
- •Вывод сообщений. Функция MsgBox
- •Окно ввода данных. Функция InputBox
- •Создание пользовательских диалоговых окон
- •Создание страниц и вкладок в диалоговых окнах
- •Добавление дополнительных элементов управления
- •Пример создания диалогового окна
- •Разработка процедур, обрабатывающих события диалогового окна и его устройств
- •Вызов собственного диалогового окна
- •Установка начальных значений свойств элементов управления
- •Использование Me в качестве имени текущего диалогового окна
- •Модификация управляющих элементов во время работы
- •Управление доступом к элементу
- •Перемещение фокуса на элемент управления
- •Изменение размеров диалогового окна
- •Проверка корректности данных
- •Обмен данными с диалоговым окном
- •Закрытие диалогового окна
- •Объект UserForm (диалоговое окно), коллекция UserForms (диалоговые окна)
- •Коллекция Controls
- •Объекты - элементы управления Перечень основных элементов управления
- •Общие свойства элементов управления Объект-родитель
- •Имя объекта
- •Значение объекта
- •Расположение объекта
- •Параметры внешнего вида объекта
- •Свойства поведения объекта
- •Другие свойства
- •CheckBox - флажок (кнопка выбора)
- •ComboBox - комбинированный список
- •CommandButton - командная кнопка
- •Frame - рамка (группы)
- •Image - изображение
- •Label - метка (надпись, статический текст)
- •ListBox - список
- •MultiPage - набор страниц
- •OptionButton - кнопка-переключатель
- •ScrollBar - полоса прокрутки
- •SpinButton - счетчик
- •TabStrip - полоса вкладок
- •TextBox - поле ввода (окно редактирования)
- •ToggleButton - выключатель
- •Объект DataObject
- •Перемещение объектов. Как реализовать технику DragAndDrop
- •События Событие AddControl (добавился элемент)
- •Событие AfterUpdate (После модификации)
- •Событие BeforeDragOver (Перед завершением перетаскивания)
- •Событие BeforeDropOrPaste (Перед опусканием или вставкой)
- •Событие BeforeUpdate (Перед модификацией)
- •Событие Change (Изменение)
- •Событие Click (Щелчок)
- •Событие DblClick (Двойной щелчок)
- •Событие DropButtonClick (Щелчок кнопки списка)
- •События Enter, Exit (Вход, Выход)
- •Событие Error (Ошибка)
- •События KeyDown, KeyUp (Клавиша нажата, Клавиша отпущена)
- •Событие KeyPress (Клавиша нажата)
- •Событие Layout (Расположение)
- •События MouseDown, MouseUp (Мышь нажата, Мышь отпущена)
- •Событие MouseMove (Мышь движется)
- •Событие RemoveControl (Удаление элемента)
- •Событие Scroll (Прокрутка)
- •События SpinDown (Уменьшить счетчик), SpinUp (Увеличить счетчик)
- •Событие Zoom (Расширение)
- •Методы Метод Add (Добавить)
- •Метод AddItem (Добавить элемент)
- •Метод Clear (Очистить)
- •Метод Copy (Копировать)
- •Метод Cut (Вырезать)
- •Метод DropDown (Вывести список)
- •Метод Move (Сдвинуть)
- •Метод Paste (Вставить)
- •Реализация операций Cut, Copy, Paste в диалоговых окнах
- •Метод RedoAction (Повторить действие)
- •Метод Remove (Удалить)
- •Метод RemoveItem (Удалить элемент)
- •Метод Repaint (Перерисовать)
- •Метод Scroll (Прокрутить)
- •Метод SetDefaultTabOrder (Установить стандартный порядок обхода)
- •Метод SetFocus (Установить фокус)
- •Метод UndoAction (Отменить действие)
- •Реализация операций Undo и Redo в диалоговых окнах
- •Метод zOrder (z-упорядочить)
- •Основные виды файлов в Office 2000
- •Открытие и создание файлов
- •Закрытие файлов
- •Запись в файлы последовательного доступа
- •Чтение файлов последовательного доступа
- •Ввод-вывод для файлов произвольного доступа и бинарных файлов
- •Работа с данными переменной длины
- •Один пример работы с Binary файлом
Разработка процедур, обрабатывающих события диалогового окна и его устройств
Процедуры, обрабатывающие события, связанные с диалоговыми окнами и элементами управления, - это частный случай процедур, обрабатывающих события объектов Office 2000. С диалоговым окном (формой) и с элементом управления каждого типа связан заранее определенный набор событий, возникающих для этого объекта по инициативе пользователя или системы. Например, одно из связанных с формой событий Initialize (Инициализация) возникает при загрузке формы, а связанное с командной кнопкой (CommandButton) событие Click возникает, когда пользователь щелкает эту кнопку (или нажимает клавишу Enter, если эта кнопка определена как нажимаемая по умолчанию). Процедуры обработки событий позволяют описать поведение диалогового окна или отдельного элемента управления при наступлении того или иного события.
Чтобы перейти в окно редактора для ввода текста процедуры обработки события, щелкните дважды объект, к которому оно относится (элемент управления или свободную от элементов часть формы). Появится окно Code (Код). В раскрывающемся списке слева вверху перечислены все объекты формы; при выборе объекта в этом списке справа вверху появляются события, связанные с данным объектом. Ниже на рис. 12.10 показан список событий для командной кнопки.
События, для обработки которых процедуры уже написаны, выделены полужирным начертанием. Чтобы создать новую процедуру или отредактировать имеющуюся, нужно щелкнуть в списке соответствующее событие. На экране появится шаблон новой процедуры или текст написанной. Имя такой процедуры состоит из имени устройства или формы, за которым после подчеркивания идет имя события. Так, процедура, обрабатывающая событие Click для командной кнопки CommandButton1, называется CommandButton1_Click. Из-за такого способа именования процедур будьте осторожны при переименовании элементов управления. Если Вы сначала определили для элемента процедуры обработки событий, а затем переименовали его (изменив свойство Name), никаких процедур обработки событий у элемента с новым именем не будет (их придется перенести с помощью редактора).
Рис. 12.12. События элемента CommandButton
Взгляните на процедуру обработки события Click для командной кнопки cmdClickMe диалогового окна "Цветная форма":
Private Sub cmdClickMe_Click()
MsgBox "Поздравляю !"
ColorForm1.TextBox1.Value = "Симпатичный, правда?"
End Sub
Эта процедура автоматически вызывается при выборе кнопки "Нажми меня" и выводит на экран поздравление, а затем заменяет название картинки в окне редактирования.
Количество свойств, методов и событий, связанных с диалоговыми окнами и элементами управления чрезвычайно велико. Более подробные сведения о них приведены при описании соответствующих объектов в следующей лекции. В этом разделе мы рассмотрим несколько типичных проблем, возникающих при проектировании процедур обработки событий.
Вызов собственного диалогового окна
Диалоговое окно нуждается в отладке. В редакторе VBA Вы видите его изображение, но управляющие элементы находятся в "замороженном" состоянии, и их реакция на действия пользователя - это реакция редактора, а не самих элементов. Диалоговое окно запускается на исполнение командой запуска процедуры или формы Запуск подпрограммы/UserForm меню Запуск редактора или нажатием клавиши F5. - Ваше диалоговое окно появится в рабочем состоянии на основной панели того приложения Office 2000, в котором оно создано.
А вызывается диалоговое окно в прикладной системе методом Show (Показать). Он позволяет выводить окно на экран в качестве реакции на выбор соответствующей команды меню или командной кнопки в другом окне и т. п. Например, диалоговое окно MyForm выводится так:
MyForm.Show