- •Часть 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 Операторы vba
4.1 Условный оператор If
Обеспечивает выполнение части программы по определенному условию. Имеется однострочная (реликтовая) и многострочная форма условного оператора. Так же, условный оператор имеет неполную и неполную форму описания. Кроме того, в этом операторе может содержаться несколько условий для выполнения определенных групп операторов. При неполной форме оператора по заданному условию выполняется группа операторов находящихся за служебным словом Then. При полной форме условного оператора помимо условного выполнения операторов за служебным словом Then, выполняются еще операторы за служебным словом else, в том случаи, если указанное условие не выполняется. Когда условный оператор содержит несколько условий выполнения, то, выполняется определенная группа операторов по определенному условию, или выполняется группа операторов находящихся за служебным словом Else, если ни одно из указанных условий не выполнено.
Виды условного оператора |
||
Название |
Многострочная форма |
Однострочная форма |
Не полная форма |
If Условие Then . Операторы . End If |
If Условие Then Оператор |
Полная форма |
If Условие Then Операторы1 Else Операторы2 End If |
If Условие Then Оператор1 _ else Оператор2 |
Несколько условий выполнения в условном операторе |
If Условие1 Then Операторы1 ElseIf Условие2 Then Операторы2 . . . [Else ОператорыElse] End If |
If Условие1 Then Оператор1 else _ If Условие2 Then Оператор2 _ [else операторElse] |
В условии производится сравнения значения двух переменных, или переменной и константы, или переменной и выражения, или сравнивается значение двух выражений. Знак отношения и имена переменных или константы отделятся друг от друга пробелом. Возможно задания условия без знака отношения в том случаи, когда в качестве условия используется имя логической переменной. В этом случаи условия будет истинно, если значение логической переменной будет истинно, и ложно в другом случаи.
Знаки отношения |
||
Название знака |
Знак в VBA |
Знак в математике |
Равно |
= |
= |
Неравно |
< > |
≠ |
Больше |
> |
> |
Меньше |
< |
< |
Меньше, либо равно |
<= |
≤ |
Больше, либо равно |
>= |
≥ |
Имеется возможность объединять несколько условий в одно, а так же отрицать условие при помощи логических функций. Имена логических функций отделяются от имен переменных пробелами, порядок выполнения логических функций может быть нарушен скобками.
Логические функции в порядке приоритета |
||
Название и функция |
Имя функции |
Пример условия |
Логическое отрицание. Условие истинно, если оно ложно и наоборот. В данном примере условие будет истинно, если значение переменной А будет меньше, либо равно 5. |
Not |
Not A>5 |
Логическое “И”. Все условие истинно, если истины все условия объединенные AND–ом. И все условие ложно, если хотя бы одно из условий объединенных AND–ом ложно. В данном примере условие будет истинно только тогда, когда A>5 и, одновременно, B<3 |
AND |
A>5 And B<3 |
Логическое “ИЛИ”. Все условие истинно, если хотя бы одно из условий объединенные OR–ом истинно. И все условие ложно, если все условия объединенные OR–ом ложны. В данном примере условие будет истинно тогда, когда A>5 или B<3. И будет ложным только в том случае, когда A≤5 и B ≥3. |
OR |
A>5 OR B<3 |
