
- •Часть 1.
- •1.1 Введение
- •1.2 Правила оформления конструкций языка vba в общем виде
- •1.3 Идеология визуальных языков
- •1.4 Основные понятия визуальных языков
- •1.5 Дополнительные понятия языка vba
- •2 Переменные и константы
- •2.1 Структура модуля
- •2.2 Объявление переменных и констант
- •Имя_Модуля1.Имя_Поля
- •2.2.2 Неявное и явное объявление переменных ( Оператор Option Explicit )
- •2.3 Неименованные константы
- •2.4 Оператор присваивания
- •2.4.1 Арифметические выражения
- •2.4.2 Строковые выражения
- •2.4.3 Логические выражения
- •Сравнение строковых переменных в логических выражениях
- •2.4.4 Выражения Data
- •2.4.5 Выражения Variant
- •2.4.6 Смешанные выражения
- •2.5 Функции определения типа переменной
- •2.6 Функция форматного преобразования переменной в строковый формат
- •3 Подпрограммы ( процедуры и функции )
- •3.1 Описание подпрограмм
- •3.2 Входные параметры подпрограммы
- •3.3 Вызов подпрограмм
- •3.3.1 Изменение вида входного параметра при вызове подпрограммы
- •3.4 Описание событийной процедуры объекта
- •3.5 Рекурсивные подпрограммы (процедуры и функции)
- •4 Операторы vba
- •4.1 Условный оператор If
- •4.2 Оператор выбора Case
- •4.3 Операторы цикла
- •4.3.1 Циклы for Оператор цикла For .. Next
- •Оператор цикла For Each .. Next
- •Досрочный выход из циклов For
- •4.3.2 Оператор цикла While .. Wend
- •4.3.3 Циклы do Оператор цикла Do While .. Loop
- •Оператор цикла Do .. Loop Until
- •Другие циклы do
- •Досрочный выход из циклов do
- •4.4 Оператор еnd (досрочное завершение программы)
- •4.5 Оператор Exit (досрочный выход из подпрограмм и циклов)
- •4.6 Оператор перехода goto
- •4.7 Оператор On Error (обнаружения ошибок)
- •4.8 Оператор With (обращения к полям структурированных типов, а так же к методам и к потомкам объектов)
- •4.9 Оператор Set (установка и снятие указателя )
- •4.10 Оператор New (создание экземпляров)
- •4.11 Оператор DoEvents (Прерывание работы подпрограммы)
- •4.12 Оператор Shell (Запуск исполняемых файлов)
- •4.13 Оператор AppActivate (Активизация окна другой программы)
- •4.14 Оператор SendKeys (Эмуляция нажатия на клавиши)
- •4.15 Вложенность структур операторов
- •5 Структурированные типы vba
- •5.1 Введение
- •5.2 Массивы
- •5.2.1 Статический массив
- •5.2.2 Динамический массив
- •5.2.3 Объявление массива через функцию Array
- •5.2.4 Функции определения размерности массива
- •5.2.5 Опрос, ввод и вывод в цикле ячеек массива
- •5.2.6 Массивы массивов
- •5.2.7 Поиск максимума и минимума в массиве
- •5.2.8 Сортировка массива
- •5.2.9 Оператор высвобождения памяти занятой динамическим массивом и обнуления ячеек статического массива (Erase)
- •5.3 Записи ( и массивы записей)
- •5.3.1 Запись с константными полями
- •5.4 Семейства (Коллекции)
- •5.5 Объекты
- •5.5.1 Введение
- •5.5.2 Объект Application
- •5.5.3 Объекты ActiveWorkbook, ThisWorkbook, Workbooks (связь с книгой Excel)
- •5.5.4 Объекты ActiveSheet, Worksheets (связь с листом книги Excel)
- •5.5.5 Объекты Rows, Columns ,Range, Cells, Selection, ActiveCell (связь со строками, столбцами и ячейками листа Excel)
- •5.5.6 Элементы управления
- •Элемент управления CommandButton (Кнопка)
- •Элементы управления CheckBox, OptionButton (Флажок, Переключатель)
- •Элемент управления TextBox (текстовый редактор)
- •Элементы управления ListBox, ComboBox (Список ,Поле со списком)
- •Элементы управления ScrollBar ,SpinButton (Полоса прокрутки ,Счетчик)
- •Элемент управления Imаge (Рисунок)
- •5.6 Объект Форма
- •6 Диалоги
- •7 Работа с файловой системой
- •7.1 Введение
- •7.1.3 Работа с файловой системой через программу Мой компьютер (My Computer)
- •7.2 Функция dir ( Просмотр содержимого директории и определение наличия файла на диске)
- •7.3 Работа с дисковым пространством
- •7.3.1 Дополнительные функции для работы с дисковым пространством
- •7.4 Работа с файлами
- •7.4.1 Работа с текстовым файлом
- •7.4.2 Работа с двоичным файлом
- •7.4.3 Работа с файлом произвольного типа данных
- •7.5 Просмотр содержимого ярлыка
- •7.6 Функция Environ (Определение местонахождения служебных директорий Windows)
- •Оглавление
- •2 Переменные и константы 9
- •3 Подпрограммы ( процедуры и функции ) 34
- •4 Операторы vba 47
- •5 Структурированные типы vba 70
- •5.3 Записи ( и массивы записей) 83
- •5.4 Семейства (Коллекции) 85
- •5.5 Объекты 87
- •6 Диалоги 119
- •7 Работа с файловой системой 122
- •Часть 1
4.11 Оператор DoEvents (Прерывание работы подпрограммы)
Функция, которая выдает число загруженных форм и вызывает прерывание подпрограммы (передает ненадолго управление операционной системе). В VBA данная функция используется как процедура. Ниже в примере показана реализация системных часов, методом OnTime и функцией DoEvents:
Sub TimeV1()
Application.Caption = Time
‘Повторить вызов процедуры через 1 секунду
Application.OnTime Now + TimeValue("00:00:01"), "TimeV"
End Sub
Sub TimeD()
Dim v As Variant
v = Time
Do
‘Если прошла секунда
If v <> Time Then
‘Прерываем процедуру
DoEvents
v = Time
Application.Caption = Time
End If
Loop
End Sub
Системные часы реализованные методом OnTime работают лучше, чем системные часы реализованные DoEvents (Стабильней работает клик мыши, и др.) К сожалению, методом OnTime можно вызвать только процедуру из модуля макросов. В других модулях для реализации постоянно работающей подпрограммы, и не вызывающей остановку работы приложения приходится пользоваться функцией DoEvents.
4.12 Оператор Shell (Запуск исполняемых файлов)
Функция, предназначенная для запуска исполняемых файлов. Данная функция выдает номер загруженного приложения, или выдает 0 если приложение загрузить не удалось. Формат запуска функции:
Shell( “Имя файла” [,Windowstyle] )
где
“Имя файла” – Полное имя файла, или имя файла находящегося в текущей директории текущего диска. За именем файла могут быть входные параметры (например, имя файла загружаемого в приложение), отделенные от имени файла приложения пробелом.
Windowstyle – константа, или числовое значение определяющее параметры запуска окна приложения:
Параметры запуска окна приложения |
||
Константа |
Значение |
Описание |
VbHide |
0 |
Окно скрыто, и фокус передается скрытому окну |
VbNormalFocus |
1 |
Окно имеет фокус и восстанавливает свои стандартные размер и положение |
VbMinimizedFocus |
2 |
Окно отображается в виде значка с фокусом |
VbMaximizedFocus |
3 |
Окно развертывается на полный экран с фокусом |
VbNormalNoFocus |
4 |
Восстанавливаются предыдущие размер и положение окна. Активным остается текущее окно |
VbMinimizedNoFocus |
6 |
Окно отображается в виде значка. Активным остается текущее окно |
4.13 Оператор AppActivate (Активизация окна другой программы)
Позволяет активизировать окно приложения, по тексту заголовка на окне, или по индексу полученному оператором Shell:
AppActivate “Заголовок окна” [, wait]
где
“Заголовок окна” - текст заголовка окна, или индекс загруженного приложения;
Wait – логическое выражение, определяющее выполнение активизации окна, если данный параметр равен False, то окно активизируется немедленно (выполняется по умолчанию входного параметра). Если указанный параметр имеет значение True, то окно активизируется только после активизации окна программы, которая переводила фокус на указанное окно.