
- •Объект 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 масса встроенных элементов управления, позволяющих спроектировать и реализовать интерфейс типичной офисной системы. Если же встроенных элементов управления не хватает, Вы можете использовать в своем диалоговом окне произвольные ActiveX -объекты.
Три приложения Office 2000 - Excel, Word и PowerPoint - содержат в редакторе VBA одинаковые средства создания диалоговых окон и программирования процедур обработки событий для них и для их управляющих элементов. В Access наряду с аналогичными средствами создания собственного диалогового окна, включены также мастера, помогающие проектировать специальные диалоговые окна, связанные с вводом и выводом информации, хранящейся в базе данных.
Диалоговое окно и каждый элемент управления, размещенный в нем, - это объект определенного класса с предопределенным набором свойств, методов и событий. Начальные значения свойств диалогового окна и его отдельных элементов можно задать при проектировании окна. Затем при работе системы некоторые свойства могут меняться пользователем (например, текст в окне редактирования, состояния кнопок выбора и т. п.), а некоторые - из программы. Программные изменения происходят обычно в процедурах обработки событий, автоматически запускаемых при наступлении событий, связанных с диалоговым окном и его элементами.
Чтобы диалоговое окно стало доступно пользователю, его нужно вывести на экран в ответ на некоторое действие пользователя или автоматически при некотором изменении состояния системы. Обычно диалоговые окна выводятся командами выпадающих или вспомогательных меню. Диалоговые окна могут также вызываться из других окон. Автоматически выводятся окна, в которых система после завершения задания сообщает о полученных результатах, окна с информацией об обнаруженных ошибках и т. п.
Встроенные диалоговые окна Коллекция Dialogs и объект Dialog
Рассматривая общие объекты, используемые при организации пользовательского интерфейса, нельзя не упомянуть коллекцию Dialogs, которую можно использовать в приложениях Word и Excel. Элементы этой коллекции - объекты класса Dialog представляют встроенные в приложение диалоговые окна, появляющиеся по ходу работы с документами. Из этой коллекции ничего нельзя удалить и ничего в нее нельзя добавить. В любой момент можно только открыть любое из существующих встроенных диалоговых окон и предоставить пользователю возможность работы с ним, например, открыть файл или организовать поиск нужной информации. Чтобы добраться до нужного диалогового окна, используется обычная конструкция: Dialogs (<имя окна>), где имя окна задается константой. Все имена констант строятся по одному принципу, - они начинаются с префикса wdDialog или xlDialog (для Word и Excel соответственно), а затем идет имя окна. В приложении Word это полное имя, включающее все меню, которые надо открыть при вызове диалогового окна "вручную". Так, например, для открытия диалогового окна "Open" из меню File в приложении Word следует вызвать метод Show следующим образом:
Dialogs(wdDialogFileOpen).Show
Сразу же появится окно:
увеличить изображение Рис. 12.1. Диалоговое окно открытия файла
В Excel этот же вызов будет иметь вид:
Application.Dialogs(xlDialogOpen).Show
Заметьте, что в первом случае - это глобальный объект и поэтому его можно вызывать непосредственно, в Excel же необходимо указание корневого объекта Application, чье свойство Dialogs и возвращает коллекцию Dialogs. Но зато в Excel достаточно короткого имени для вызова диалогового окна. Метод Show открывает диалоговое окно и позволяет пользователю работать в нем. В зависимости от того, какую кнопку нажал пользователь при выходе из окна, возвращается результат: в Excel это True или False (нажаты кнопки OK или Cancel), в Word можно точнее проанализировать, какая кнопка была нажата. Метод Show - основа работы с диалоговыми окнами, по сути больше ничего и не нужно: в нужный момент открывается нужное диалоговое окно, пользователь работает в нем и по закрытии можно понять, успешно ли закончилась его работа.
Тем не менее, Word предоставляет некоторые дополнительные возможности. В частности, наряду с методом Show, можно применять метод Display, отличающийся тем, что хотя окно и открывается, но ввод от пользователя оно принять не может и используется только в информационных целях. Word позволяет также создавать объекты класса Dialog и программно устанавливать значения полей диалогового окна, еще до того, как оно будет показано пользователю, беря тем самым на себя часть его работы. Метод Execute позволяет эти установки зафиксировать. Вот пример, в котором делаются некоторые установки в диалоговом окне Replace:
Public Sub Dialogs2()
Dim MyDialog As Dialog, Answer As Variant
Set MyDialog = Dialogs(wdDialogEditReplace)
MyDialog.Find = "коллекция"
MyDialog.Replace = "семейство"
MyDialog.FuzzyFind = True
Answer = MyDialog.Show
Debug.Print Answer
End Sub
В процессе работы этой процедуры появится окно:
Рис. 12.2. Диалоговое окно замены
Обратите внимание, мы используем у объекта MyDialog такие свойства, как Find, Replace и даже FuzzyFind, соответствующие полям диалогового окна (В браузере объектов Вы не найдете поля FuzzyFind). В документации по Word можно найти список допустимых параметров для каждого типа диалогового окна.
Поскольку действительно важно уметь установить программно некоторые характеристики в диалоговом окне, то и в Excel предусмотрена такая возможность. Здесь всю работу выполняет метод Show,- он имеет до 30 возможных параметров и, используя их, можно передать при открытии окна всю необходимую информацию.