- •Содержание
- •Раздел 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. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Объекты UserForm и Controls
Все формы конкретного приложения составляют коллекцию UserForms, которая обладает свойствами и методами, присущими любой коллекции, например, Count, Item, Add. Программным способом всегда можно добавить новую форму или изменить свойства любой формы коллекции.
Все элементы управления формы составляют коллекцию Controls. Каждый элемент управления имеет индекс в этой коллекции, определяемый порядком возникновения элемента в форме. Элемент управления каждого типа обладает собственными свойствами, методами и событиями.
В таблице рассмотрены некоторые наиболее употребительные методы объекта UserForm и свойства элементов управления, присущие многим из них (общие свойства).
Некоторые свойства и методы формы и объектов формы
Метод или свойство |
Комментарии |
Примеры |
Метод Hide |
Скрытие формы |
Userform1.Hide Me.Hide |
Форма не видна на экране, но остается загруженной в память. Переменные, определенные на уровне модуля, не теряют своих значений |
||
Метод Load |
Загрузка формы |
Load Userform1 |
Форма загружается в память, но не высвечивается на экране |
||
Метод Repaint |
Высвечивание модифицированного изображения формы |
Userform1.Repaint Me.Repaint |
Применяется, когда пользователь немедленно должен увидеть результаты модификации формы, не дожидаясь окончания событийной процедуры |
||
Метод Show |
Высвечивание формы |
Userform1.Show |
Если форма спрятана, то она высвечивается. Если форма не загружена, то она загружается и высвечивается |
||
Метод UnLoad |
Выгрузка формы |
UnLoad Userform1 UnLoad Me |
Форма выгружается из памяти, значения переменных теряются |
||
Метод SetFocus |
Установка фокуса на элементе управления |
CommandButton1.SetFocus |
Свойства BackColor, ForeColor, BorderColor |
Цвет фона объекта, цвет переднего плана объекта (цвет текста), цвет рамки (границы) объекта |
Userform1.BackColor=RGB(255,0,0) Userform1.BackColor = vbRed Userform1.ForeColor = vbWhite Userform1. BorderColor=vbBlack |
Определяют внешний вид объекта. Цвет можно выбрать визуально из таблицы цветов, можно задавать программно, используя функцию RGB или константы VBA, которые присваивают свойству целое число, соответствующее выбранному цвету |
||
Свойство Caption |
Надпись объекта |
Frame1.Caption = "Up_Down" |
Высвечивается в заголовке формы или на объекте формы |
||
Свойство ControlSource |
Установка свойства Value элемента управления равным значению указанной ячейки |
TextBox1.ControlSource="Лист1!A5" |
Cвязывает значение элемента управления с ячейкой рабочего листа |
||
Свойство ControlTipText |
Короткая подсказка по элементу формы |
Frame1.ControlTipText = "Вперед или Назад" |
Определяет краткий текст, который появится на экране рядом с объектом при наведении курсора на объект |
||
Свойство Enabled |
Доступность элемента во время выполнения формы |
CommandButton1.Enabled=False |
Определяет, может ли элемент управления оказаться в фокусе (стать доступным) в результате действий пользователя:
Отключенный элемент затеняется. Оператор, приведенный в примере, не дает возможности пользователю нажать на командную кнопку CommandButton1 |
||
Свойство Font |
Шрифт |
watch.Font.Bold=True |
Шрифт определяет характеристику текста, высвечиваемого в элементе управления. Нажатие на кнопку при визуальном задании этого свойства вызывает стандартный диалог изменения типа, размера и начертания шрифта. При использовании в процедуре свойство Font возвращает объект Font, свойства которого можно установить программно |
||
Cвойства Height, Width |
Размеры объекта на экране |
Userform1.Height=200 Textbox1.Width=400 |
Устанавливают размер формы или элемента управления. Единица измерения – точка |
||
Свойства Left, Top |
Определяют расположение объекта в форме или формы на экране |
CheckBox1.Left=20 CheckBox1.Top=50 |
Свойства задают координаты левого верхнего угла элемента управления относительно левого верхнего угла контейнера – элемента, в который вложен данный. Единица измерения – точка. Контейнером, как правило, является сама форма |
||
Свойство Name |
Имя (идентификатор) объекта |
|
|
Имя идентифицирует объект во время выполнения программы. Свойство нельзя изменить в режиме выполнения формы. При задании значения этого свойства применяются обычные правила создания имен: имя начинается с буквы, рекомендуется применять буквы латинского алфавита, строчные и прописные буквы считаются равными, запрещено использовать пробелы, запятые и другие специальные знаки и символы. |
|
Свойство RowSource |
Установка значений элементов списка |
ListBox1.RowSource="MySheet!A15:C43" |
Cвязывает список с ячейками рабочего листа |
||
Свойство TabIndex |
Индекс элемента |
CommandButton1.TabIndex=1 |
Определяет порядковый номер элемента управления при обходе всех элементов с помощью клавиши Tab. Нумерация элементов начинается с 0. Максимальное значение этого свойства равно количеству элементов управления минус единица |
||
Свойство Value |
Значение элемента управления. Определяет состояние элемента управления или его содержимое. Для разных элементов управления свойство может принимать различные значения: |
TextBox1.Value="Введите текст" If CheckBox1.Value=True Then TextBox1.BackColor=RGB(255,0,0) Else TextBox1.BackColor=RGB(0,255,0) |
В списках, допускающих множественный выбор, свойство Value не применяется |
||
Свойство Visible |
Скрытие или высвечивание элемента управления |
CommandButton1.Visible=False |
Принимает значения True или False. По умолчанию True, т.е. элемент виден на экране |