- •Содержание
- •Раздел 1. Быстрый старт 2
- •Раздел 2. Редактор Visual Basic 11
- •Immediate Window (окно проверки) 15
- •Раздел 3. Переменные и типы данных 27
- •Раздел 4. Операторы управления 51
- •Раздел 5. Процедуры, подпрограммы и функции 66
- •Раздел 6. Объекты ms Excel 101
- •Раздел 7. Пользовательские формы 139
- •Immediate Window (окно проверки) 177
- •Введение
- •Раздел 1.Быстрый старт Использование макрорекордера
- •Запись макроса
- •Запуск макроса
- •Абсолютные и относительные ссылки Запись формулы на рабочем листе
- •Макрорекордер
- •Диалоговые окна для ввода/вывода данных
- •Функция InputBox
- •Функция MsgBox
- •Раздел 2.Редактор Visual Basic
- •Окна редактора vb
- •Project Window (окно проекта)
- •Properties Window (Окно свойств)
- •Code (окно программы)
- •Immediate Window (окно проверки)
- •Получение справки
- •Запись процедур
- •Режимы работы с программой
- •Ошибки и их обнаружение
- •Отладка
- •Меню и панели инструментов Visual Basic
- •Панели инструментов Стандартная панель инструментов
- •Панель инструментов отладки
- •Раздел 3.Переменные и типы данных Объявление переменных
- •Важность объявления переменных
- •Область видимости переменных
- •Время жизни переменных
- •Инициализация переменных
- •Операции с элементарными данными
- •Оператор присваивания
- •Выполнение операций
- •Арифметические операции
- •Операции сравнения
- •Оператор Like
- •Логические операции
- •Символьные операции
- •Приоритет операций
- •Операции с другими типами данных
- •Объектные переменные
- •Массивы
- •Динамические массивы
- •Пользовательский тип
- •Раздел 4.Операторы управления
- •Условный оператор If
- •Оператор выбора Select Case
- •Операторы цикла
- •Цикл For…Next
- •Цикл For Each…Next
- •Оператор Set
- •Цикл Do…Loop
- •Цикл While…Wend
- •Раздел 5.Процедуры, подпрограммы и функции
- •Классификация процедур
- •Структура и объявление процедуры
- •Синтаксис объявления процедуры общего типа
- •Синтаксис объявления функции
- •Вызов процедуры
- •Параметры и аргументы
- •Возврат значения функции
- •Использование процедур-функций на рабочем листе
- •Поименованные аргументы
- •Использование необязательных аргументов
- •Использование параметра ParamArray
- •Вызов процедур другого проекта
- •Автопроцедуры
- •Событийные процедуры
- •Рекурсивные процедуры
- •Встроенные функции Классы функций
- •Использование табличных функций
- •Организация интерфейса при помощи встроенных функций
- •Функция MsgBox
- •Функция InputBox
- •Строковые функции
- •Примеры на использование различных строковых функций Функция Format
- •Функция Val
- •Функции Len, Mid
- •Функция Left
- •Функция Instr
- •Функция Chr
- •Математические функции
- •Функции Int и Fix
- •Функция Log
- •Функции Randomize и Rnd
- •Функции даты и времени
- •Примеры функций даты и времени Функции Day, Month, Year, DateSerial
- •Функции Now, Time, Timer
- •Функция WeekDay
- •Функции Hour, Minute, Second
- •Раздел 6.Объекты ms Excel
- •Свойства объектов
- •Методы объектов
- •Модель объектов
- •Коллекции объектов
- •Обращение к объекту Контейнеры
- •Ссылка на объект
- •Оператор With
- •Использование объектных переменных
- •Объект Application
- •Активные объекты
- •Свойства, влияющие на высвечивание на экране Свойство DisplayAlerts (r/w Boolean)
- •Свойства DisplayFormulaBar (r/w Boolean), DisplayStatusBar (r/w Boolean)
- •Свойство ScreenUpdating (r/w Boolean)
- •Свойства Top, Left, Height, Width, UsableWidth, WindowState
- •Свойство Visible (r/w Boolean)
- •Другие свойства объекта Application
- •Методы Метод Calculate
- •Метод CheckSpelling
- •Метод OnTime
- •Метод Wait
- •Коллекции объектов
- •Объекты Workbooks и Workbook
- •Событийные процедуры
- •Объекты Sheets, WorkSheets и WorkSheet
- •Свойства Свойство Name (r/w String)
- •Свойство Type (r/o String)
- •Свойство UsedRange
- •Свойства Next и Previous
- •Свойство Parent
- •Свойство Visible (r/w Boolean)
- •Методы Метод Add
- •Методы Move и Select
- •Событийные процедуры
- •Объект Range
- •Свойства Cвойство Range
- •Свойство Cells
- •Свойство Offset
- •Метод Union и свойство Areas
- •Свойства Column и Row (r/o Integer)
- •Свойства Columns и Rows
- •Свойство CurrentRegion
- •Cвойства, связанные с шириной и высотой ячейки
- •Методы Методы Select и Activate
- •Метод Clear
- •Цветовое оформление объекта Range Свойство ColorIndex
- •Свойство Color
- •Раздел 7.Пользовательские формы
- •Режимы работы с формой
- •Режим конструктора
- •Элементы управления
- •Событийные процедуры
- •Режим выполнения
- •Объекты UserForm и Controls
- •Разработка приложения
- •Приложение 1
- •Конструирование начальной формы
- •Свойства формы и элементов управления
- •Создание событийных процедур
- •Конструирование формы для выбора рабочего листа
- •Создание событийных процедур
- •Элемент ListBox
- •Событийная процедура инициализации формы
- •Завершение разработки приложения
- •Связь формы с ячейками рабочего листа
- •Элемент TextBox
- •Элемент ListBox
- •Приложение 2
- •Конструирование форм
- •Процедуры
- •Приложение a. Справочная система Просмотр объектов, их свойств и методов (Object Browser)
- •Окно Object Browser
- •Панель инструментов Object Browser
- •Выход из Object Browser
- •Интерактивная подсказка
- •Приложение b. Инструментальные средства отладки программ
- •Контрольные точки или точки останова
- •Трассировка или пошаговое выполнение программы
- •Использование объекта Debug
- •Окна отладчика
- •Immediate Window (окно проверки)
- •Окно значения переменной
- •Locals Window (окно локальных переменных)
- •Окно контрольных значений (Watches)
- •Приложение c. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Раздел 7.Пользовательские формы
Объекты Userform (формы) используются в VBA для организации интерфейса пользователя. Формы представляют собой диалоговые окна, содержащие различные стандартные элементы управления, такие как кнопки, списки, переключатели и т.д. Диалоговые окна пользователя, элементы диалоговых окон, событийные процедуры можно рассматривать как "кубики", из которых разработчик строит удобный для пользователя интерфейс. Все элементы просты и очевидны, сложность конструкции ограничена изобретательностью разработчика и запросами пользователя.
Форма и любой объект управления, размещенный в форме, обладает свойствами, методами и событиями. Например, каждая форма имеет свойства – название формы в титульной строке окна, наличие и цвет рамки, цвет фона формы.
Чтобы создать новую форму, выполните команду Userform из меню Insert. При этом в окно проекта добавляется, если она отсутствовала, папка Forms. Раскрыв ее, можно увидеть перечень всех форм, относящихся к проекту.
В папке Forms появится строка, соответствующая новому объекту Userform, с именем формы. Имя формы строится в соответствии со стандартом и состоит из ключевого слова UserForm и порядкового номера создаваемой формы.
Режимы работы с формой
Работа с формой производится в двух режимах: режиме конструктора и режиме выполнения.
Режим конструктора
В режиме конструктора добавляются, модифицируются или удаляются элементы управления, редактируются процедуры процедурного листа формы.
Одновременно могут быть открыты несколько форм, каждая в отдельном окне. В единицу времени активна только одна форма. Ее окно расположено поверх окон остальных форм и титульная строка высвечено ярко. Команды меню Window позволяют по-разному расположить окна форм и листов с процедурами (см. рис. 7.1).
Вновь создаваемая форма автоматически представляется в режиме конструктора, ранее созданная форма открывается в режиме конструктора двойным щелчком на строке с именем формы в папке Forms окна проекта.
Имя окна, в котором открывается форма в режиме конструктора, состоит из имени рабочей книги и имени формы, в скобках после которого указано название объекта – UserForm.
Рис. 7.1. Две открытые формы, активна форма Act_Sheet
Элементы управления
На формах размещаются элементы управления, с помощью которых передаются и принимаются данные, высвечиваются сообщения и запросы, происходит переход от одной формы к другой, запускаются обрабатывающие процедуры. Элементы управления являются общими для всех офисных приложений.
Для размещения в диалоговом окне Userform элементов управления (Control) используется панель Toolbox, перечень элементов которой см. в таблице ниже.
|
Рис. 7.2. Панель элементов управления |
Перечень элементов управления
Кнопка |
Название |
Описание |
|
Select Objects (Выбор объектов) |
Выделяет или отменяет выделение объекта |
|
Label (Надпись) |
Неизменный текст. В режиме выполнения формы в элементе отображается значение свойства Caption |
|
TextBox (Текстовое поле) |
Элемент используется для ввода/вывода данных в режиме выполнения формы |
|
ComboBox (Комбинированный список) |
Подобен элементу ListBox, но дополнительно содержит поле для ввода данных (другое название элемента – поле со списком) |
|
ListBox (Список) |
Элемент допускает просмотр и выбор значений из списка значений |
|
CheckBox (Флажок) |
Элемент принимает логические значения. В одном диалоге можно установить несколько флажков в группе |
|
OptionButton (Переключатель) |
Элемент принимает логические значения. Предназначен для выбора одного из взаимоисключающих значений. Выбор одного элемента группы автоматически отключает другой элемент группы |
|
ToggleButton (Выключатель) |
Элемент принимает логические значения. Выбор одного элемента группы автоматически отключает другой элемент группы. Возможно размещение рисунка или текста на выключателе |
|
Frame (Рамка) |
Часто используется для создания группы элементов, представляющих набор альтернативных значений: CheckBox, OptionButton, ToggleButton |
|
CommandButton (Командная кнопка) |
Нажатие на командную кнопку вызывает выполнение некоторых действий, например, печать формы, вызов другой формы |
|
TabStrip (Полоса вкладок) |
Используется для ввода/вывода однотипной информации, относящейся к разным объектам |
|
MultiPage (Набор страниц) |
Помогает отображать разнородные данные, относящихся к одному объекту, на разных страницах формы (подобно диалогам Windows) |
|
ScrollBar (Полоса прокрутки) |
Устанавливает вертикальную или горизонтальную полосу прокрутки в окне формы |
|
SpinButton (Счетчик) |
Кнопка используется в числовых полях для уменьшения или увеличения значения поля (подобно изменению значения отступа при форматировании абзацев). Другие названия – ворот, веретено |
|
Image (Изображение) |
В элементе выводится неизменяемый рисунок (графическое изображение, не являющееся объектом OLE) |
|
RefEdit (Редактирование ссылки) |
Используется для свертывания диалога при выделении интервала ячеек в режиме выполнения формы (подобно свертыванию диалога при задании интервала суммирования для функции Sum) |
Свойства объекта Userform и любых элементов управления изменяются в окне свойств, которое высвечивается командой Properties меню View или нажатием на пиктограмму . Свойства можно просматривать в алфавитном порядке (вкладка Alphabetic) или с группировкой по категориям (вкладка Categorized).
Значения свойств элементов управления могут быть изменены или протестированы. Установка свойств формы и ее элементов, может производиться вручную в окне свойств или программным путем в событийных процедурах формы. Часто предусматривается установка свойств перед высвечиванием формы в процедуре инициализации формы.
Методы формы и ее элементов управления могут вызываться в процедурах. Разработчик может создать событийные процедуры для элементов управления. Перечень свойств, методов и событий, ассоциированных с элементами управления, можно просмотреть через Object Browser (кнопка ).