- •Объект 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 файлом
События Событие AddControl (добавился элемент)
Событие AddControl возникает при добавлении во время работы программы нового элемента управления в диалоговое окно (UserForm), рамку (Frame), набор вкладок (MultiPage) или на одну вкладку (Page). При добавлении элементов на стадии проектирования окна и при выводе окна на экран в процессе работы это событие не возникает. Инициируется оно методом Add (Добавить).
Процедура обработки этого события не имеет аргументов при добавлении элемента в рамку или вкладку:
Private Sub объект_AddControl ()
Для диалогового окна в качестве параметра передается добавляемый элемент:
Private Sub UserForm_AddControl (ByVal ctrl As MSForms. Control)
При добавлении элемента в набор страниц вызов этой процедуры имеет вид:
Private Sub объект_AddControl (index As Long, ctrl As Control)
Здесь объект - это тот объект, в который добавляется элемент управления, index - индекс вкладки, в которую добавляется элемент, а ctrl - сам добавляемый элемент.
Процедура следующего примера выводит на экран сообщение всякий раз при добавлении нового элемента управления к диалоговому окну
Private Sub UserForm_AddControl (ByVal Ctrl As MSForms. Control)
MsgBox "Появился новый элемент"
End Sub
Событие AfterUpdate (После модификации)
Возникает после изменения пользователем данных в элементе управления. Это событие не может быть отменено. Оно происходит после события BeforeUpdate и перед событием Exit для текущего элемента и перед событием Enter для элемента, на который переместится фокус после нажатия клавиши Tab. Вызов процедуры обработки события AfterUpdate имеет вид:
Private Sub объект_AfterUpdate ()
Событие BeforeDragOver (Перед завершением перетаскивания)
Это событие, возникающее при перетаскивании элемента, можно использовать для управления курсором, когда он попадает, покидает или находится в площади объекта. При перетаскивании объекта система периодически возбуждает событие BeforeDragOver, когда пользователь перемещает мышь, нажимает или отпускает ее кнопки. Положение курсора определяет целевой объект, получающий это событие.
Набор параметров, передаваемых процедуре обработки события BeforeDragOver, зависит от вида элемента управления. Они имеют следующий вид.
-
для рамки (Frame) :
-
Private Sub объект_BeforeDragOver (ByVal Cancel As MSForms.
-
ReturnBoolean, ctrl As Control, ByVal Data As DataObject,
-
ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState,
-
ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState) ;
-
для набора страниц (MultiPage) :
-
Private Sub объект_BeforeDragOver (index As Long, ByVal Cancel As MSForms.
-
ReturnBoolean, ctrl As Control, ByVal Data As DataObject,
-
ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState,
-
ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState) ;
-
для полосы вкладок (TabStrip) :
-
Private Sub объект_BeforeDragOver (index As Long, ByVal Cancel As MSForms.
-
ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As
-
Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.
-
ReturnEffect, ByVal Shift As fmShiftState) ;
-
для других элементов управления:
-
Private Sub объект_BeforeDragOver (ByVal Cancel As MSForms.
-
ReturnBoolean, ByVal Data As DataObject, ByVal X As Single,
-
ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.
-
ReturnEffect, ByVal Shift As fmShiftState).
Здесь объект - имя объекта, которому принадлежит процедура, index - индекс вкладки из набора вкладок, затрагиваемой операцией перетаскивания, Cancel - обязательный статус обработки события, False означает, что оно будет обрабатываться элементом (по умолчанию), True показывает, что событие будет обрабатываться приложением. Параметр ctrl - тот элемент, перетаскивание которого завершается. Параметр Data содержит перетаскиваемые данные в формате объекта типа DataObject. Параметры X и Y задают горизонтальную и вертикальную координаты положения указателя мыши в элементе, измеряемые в точках. X - расстояние от левого края элемента, Y - от верхнего края. Параметр DragState указывает состояние указателя мыши относительно целевого элемента. Его возможные значения: fmDragStateEnter = 0 - указатель внутри целевого элемента, fmDragStateLeave = 1 - указатель вне области целевого элемента, fmDragStateOver = 2 - указатель находится в новом положении, но внутри того же элемента. Параметр Effect определяет возможные операции, выполняемые над опущенным исходным элементом. Его возможные значения те же, что и у описанного выше метода StartDrag. Параметр Shift задает состояние клавиш Shift, Ctrl и Alt. Его возможные значения: fmShiftMask = 1 - нажата клавиша Shift, fmCtrlMask = 2 - клавиша Ctrl, fmAltMask = 4 - Alt.
Большинство элементов управления не поддерживает перетаскивание при значении аргумента Cancel = False (это значение устанавливается по умолчанию). Эти элементы не позволяют перетащить что-либо на себя и не возбуждают событие BeforeDropOrPaste. Исключения - поле ввода (TextBox) и комбинированный список (ComboBox), разрешающие перетаскивание даже при значении параметра Cancel = False.