
- •Объект 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 файлом
Label - метка (надпись, статический текст)
Один из самых простых элементов управления Label (метка) служит для вывода разного рода надписей в диалоговом окне. Часто эти надписи именуют или объясняют другие элементы окна. При работе программы текст метки может меняться. Основное свойство метки - Caption - содержит в качестве значения текст метки.
События: BeforeDragOver, BeforeDropOrPaste, Click, DblClick, Error, MouseDown, MouseUp, MouseMove.
Методы: Move, Zorder.
ListBox - список
Элемент управления ListBox выводит на экран окно со списком значений, позволяя пользователю выбрать из них одно или более. В варианте с выбором одного элемента ListBox ведет себя, как и описанный выше список в элементе ComboBox. Значение передается в свойстве Value, такую же роль играют свойства ColumnCount, ColumnWidth, ControlSource, RowSource, BoundColumn, List-Index, TextColumn и др. Главное отличие - способность обеспечить множественный выбор. Режим выбора определяется свойством MultiSelect, по умолчанию его значение fmMultiSelectSingle = 0, что соответствует выбору одного значения в списке. Значение fmMultiSelectMulti = 1 задает режим множественного выбора, при котором выбор и отмена выбора элемента осуществляются щелчком мышью или нажатием клавиши "пробел". Значение fmMulti-SelectExtended = 2 задает режим, при котором выбор осуществляется щелчком или нажатием клавиши Shift, а расширить область выделенных элементов можно, используя клавиши-стрелки при нажатой клавише Shift.
В случае множественного выбора значение свойства Value всегда - Null, а получение информации о выбранных пользователем элементах обеспечивает булево свойство Selected (выбран), которое по номеру элемента списка определяет, выбран он (True) или нет (False). Обращение к нему имеет вид:
объект. Selected (индекс),
где индекс - целое в интервале от 0 до ListCount - 1. Например, если в списке ListBox1 пять элементов, то следующий цикл перенесет выбранные пользователем элементы в столбец "A" рабочего листа "Лист1" в Excel.
For i = 0 To 4
If ListBox1. Selected (i) = True Then
Worksheets ("Лист1"). Cells (i+1, 1) = ListBox1. List (i)
End If
Next I
Свойство Selected используется также для выбора или отмены выбора элементов из программы.
События: AfterUpdate, BeforeDragOver, BeforeDropOrPaste, BeforeUpdate, Change, Click, DblClick, DropButtonClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, MouseDown, MouseUp, MouseMove.
Методы: AddItem, Clear, Move, RemoveItem, SetFocus, ZOrder.
MultiPage - набор страниц
Элемент управления MultiPage объединяет несколько независимых диалоговых окон - страниц (вкладок). Заголовки страниц обычно видны на одной из сторон элемента на их закладках, а переход на страницу происходит после щелчка по ее закладке. Этот простой переход с одной страницы на другую и делает MultiPage удобным средством для представления разнородных данных, относящихся к одному объекту. Такие данные в "бумажных" офисах хранятся обычно в отдельных папках и образуют дела, досье и т. п.
Каждая страница из MultiPage - это объект типа Page, а все они включены в коллекцию Pages (страницы). При создании элемента MultiPage в него автоматически помещаются две страницы с именами Page1 и Page2. Имена можно изменять, можно добавлять и новые страницы. Чтобы на стадии проектирования добавить новую страницу, переименовать, передвинуть или удалить имеющуюся, щелкните правой кнопкой мыши полосу закладок и выберите нужное действие в появившемся контекстном меню. Рассмотрим основные свойства набора страниц.
-
Количество страниц возвращается свойством Count.
-
Свойство Value для элемента MultiPage определяет номер текущей активной страницы в коллекции Pages.
-
Свойство SelectedItem (его можно только читать) возвращает текущую активную страницу (как объект). Его можно использовать для считывания и установки свойств этой страницы и входящих в нее элементов управления.
-
Свойство Style определяет, в каком виде представляются заголовки страниц. По умолчанию оно равно fmTabStyleTabs=0 и задает представление заголовков в виде закладок в полосе заголовков. Каждая закладка с заголовком находится внутри границ своей страницы. Если значение fmTabStyleButtons = 1, заголовок каждой страницы находится на отдельной кнопке, расположенной в полосе заголовков. Переход на страницу происходит после выбора кнопки с ее заголовком. Если же значение fmTabStyleNone = 2, полоса с заголовками страниц на экран не выводится.
-
Свойство TabOrientation задает расположение полосы с заголовками страниц. Его значения описаны в следующей таблице.
Константа
Значение
Заголовки расположены
fmTabOrientationTop
0
наверху
fmTabOrientationBottom
1
внизу
fmTabOrientationLeft
2
на левой стороне
fmTabOrientationRight
3
на правой стороне
-
Булево свойство MultiRow позволяет включить возможность создания нескольких полос с закладками (по умолчанию его значение равно False, что соответствует одной полосе закладок).
-
Свойства TabFixedHeight и TabFixedWidth устанавливают или возвращают высоту и ширину закладки (в точках). При значении 0 ширина закладок устанавливается автоматически так, чтобы в каждой закладке помещалось ее название и оно занимало всю ширину элемента. При значениях > 0 у всех закладок одинаковые размеры, заданные свойством TabFixedWidth. Минимально возможный размер закладки - 4 точки.
Рассмотрим пример, демонстрирующий разные способы доступа к страницам набора. Допустим, в наборе страниц MyPages есть страницы: Page1, Page2, Page3 и Page4, созданные и размещенные в указанном порядке.
Private Sub UserForm_Initialize ()
'Использование индекса (числового или строкового) и коллекции Pages
MyPages. Pages (0). Caption = " Страница 1 "
MyPages. Pages. Item (1). Caption = " Страница 2 "
'Использование объекта Page без ссылки на коллекцию Pages:
MyPages. Page3. Caption= " Страница 3 "
'Использование свойства SelectedItem:
MyPages. Value = 3
MyPages. SelectedItem. Caption = " Страница 4 "
End Sub
События: AddControl, BeforeDragOver, BeforeDropOrPaste, Change, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, Layout, MouseDown, MouseUp, MouseMove, RemoveControl, Scroll, Zoom.
Методы: Move, SetFocus, ZOrder.