- •Объект 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 файлом
Метод zOrder (z-упорядочить)
Помещает объект впереди или сзади всех других перекрывающихся с ним объектов на экране.
Вызов метода имеет вид:
объект. ZOrder ([zPosition])
где объект - объект, меняющий свое положение, zPosition - необязательный параметр, указывающий, впереди или сзади поместить объект. При значении zPosition, равном fmTop = 0, объект помещается впереди (это значение по умолчанию), а при значении fmBottom = 1 - сзади других перекрывающих его объектов.
Вообще при проектировании интерфейса следует избегать перекрытия одних элементов управления другими на поверхности окна, так как это затрудняет понимание и использование интерфейса. Кроме того, среди элементов управления есть набор страниц, позволяющий помещать на одном и том же месте окна различные элементы управления, но благодаря заголовкам страниц, делающий переход от набора элементов одной страницы к набору элементов другой простым и удобным.
Программный код большинства примеров данной лекции можно найти в проектах, доступных для просмотра: DocOne14.
Основные виды файлов в Office 2000
Как правило, приложения Office имеют дело с файлами, хранящими документы этих приложений. Это файлы с документами Word (с расширениями.doc), рабочими книгами Excel (с расширениями.xls), базами данных Access (с расширениями.mdb). Операции по созданию, открытию и записи этих файлов выполняются с помощью соответствующих методов приложений, которые запускаются командами меню File. Но офисные системы должны уметь работать и с файлами других форматов. Например, часто требуется считывать данные из обычных текстовых файлов и заносить информацию, в них хранящуюся, в таблицы Excel или базы данных Access. Возможна и обратная ситуация, когда, используя данные из приложений Office, требуется сохранять полученную информацию в файлах. В общем, есть некоторые ситуации, когда предпочтительнее работать с собственными файлами, а не со стандартными базами данных. По этой причине в VBA включены средства для работы с внешними файлами, позволяющие их создавать, открывать для работы и осуществлять ввод-вывод данных. Файлы VBA делятся на три группы.
-
Файлы последовательного доступа могут открываться в режиме чтения (Input), записи (Output), или присоединения (Append). Специальных средств поиска для них нет, и чтобы получить данные из такого файла, его нужно открыть и прочесть последовательно все данные до нужного места. Изменения (запись данных) в таком файле всегда происходят в его конце. Существенной особенностью этого файла является редактирование данных в процессе записи и чтения. В файл можно записывать данные разных типов, При вводе они будут отредактированы и преобразованы в строку. Таким образом, последовательный файл можно рассматривать, как поток данных, представляющий последовательность строк переменой длины. Признаки конца строк и являются разделителями элементов файла. Доступ к элементам файла только последовательный и этот поток можно только читать или только писать, но нельзя делать то и другое одновременно.
-
Файлы произвольного доступа состоят из записей постоянной длины, что позволяет организовать быстрый поиск данных и их локальное изменение внутри файла без его переписывания. В таких файлах чаще всего хранят записи пользовательского типа, все поля которых имеют фиксированную длину, удобно также хранить числовые данные в двоичном формате. В этой модели файла поток данных представляет последовательность пронумерованных элементов одинаковой длины. Возможен прямой доступ к элементу по его номеру. Разрешается одновременно выполнять операции чтения и записи в файл, можно изменять содержимое отдельных элементов. Эта простая и эффективная в реализации модель файла очень удобна в тех случаях, когда она применима, например, как мы уже говорили для хранения числовых данных. Серьезным ограничением на ее применение является требование постоянства длины элементов файла.
-
Бинарные (или бинарного доступа) файлы позволяют считывать и записывать информацию побайтно; обычно используются для хранения графических данных или любой другой информации в неструктурированном виде. Здесь также как и в предыдущей модели, элементы файла имеют постоянную длину в 1 байт. Существенным отличием является то, что никакого редактирования в момент чтения или записи не производится. Одной операцией может быть записано или прочитано произвольное число байтов.
Можно заметить, что среди допустимых моделей файлов VBA нет наиболее общей, когда разрешен прямой доступ к элементам файла, когда элементы могут иметь произвольную длину, когда ключ может быть произвольным и не обязательно должен задавать номер записи. Отсутствие такого типа файлов действительно представляет серьезное ограничение, но этому есть и не менее серьезное оправдание. В таких сложных ситуациях рекомендуется переходить на работу с базой данных. Это тем более оправдано тем, что база данных Access доступна из любого приложения Office 2000.
Типичный цикл работы программы с файлом любого типа начинается с открытия или создания файла оператором Open. При этом задается режим доступа к файлу, и ему присваивается номер, идентифицирующий этот файл при выполнении других операций. Затем программа считывает данные из файла или записывает их в файл, используя операторы поиска информации, чтения и записи (их выбор зависит от режима доступа к файлу). Завершает работу с файлом операция закрытия.
Вот какие операторы обычно применяются для записи и чтения данных из файлов в зависимости от режима доступа.
Тип доступа |
Запись данных |
Чтение данных |
Последовательный |
Print#, Write# |
Input#, Line Input# |
Произвольный |
Put |
Get |
Бинарный |
Put |
Get |