
- •Часть 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
Имя_Модуля1.Имя_Поля
Но если в других модуля макросов не содержится глобальных полей с именем совпадающем с именем поля в Модуле1, то VBA допускает обращение к этому полю просто по имени.
Числовые переменные VBA после их объявления имеют по умолчанию значение 0. Строковые переменные по умолчанию не содержат в себе символов, т.е. являются пустой строкой. Строки фиксированной длины имеют объявленную длину(см. таблицу типов). Логическая переменная имеет значение False. Переменная Variant – Empty, а переменная Object – NoThing.
2.2.2 Неявное и явное объявление переменных ( Оператор Option Explicit )
В предыдущей главе Объявление переменных и констант, нами было описано явное объявление переменных оператором Dim .
В языке VBA допускается не объявлять переменные. Необъявленные переменные имеют тип Variant, если их имена не заканчиваются следующими служебными символами:
% - короткое целое (Integer )
& - длинное целое ( Lоng )
! - Вещественное одинарной точности ( Single)
# - Вещественное двойной точности ( Double )
@ - Денежное, числовое с фиксированной запятой ( Currency )
$ - Строковое ( String )
Кроме того, возможно неявное объявление типа переменных следующими операторами:
DefByte – переменная байт (Byte)
DefInt - короткое целое (Integer )
DefLng - длинное целое ( Lоng )
DefSng - Вещественное одинарной точности ( Single)
DefDbl - Вещественное двойной точности ( Double )
DefCur - Денежное, числовое с фиксированной запятой ( Currency )
DefBool – Логический ( Boolean )
DefDate – Дата ( Date )
DefStr - Строковое ( String )
DefVar – Универсальный ( Variant )
Данные операторы должны быть записаны в общей области (General) модуля, до первого, явного объявления переменных. За именем оператора должен следовать список из букв. Например, в начале модуля может быть записана следующая программная инструкция:
DefInt I-K
DefBool B
Которая обозначает, что все необъявленные переменные в модуле, имена которых начинаются с букв I, J, K имеют тип Integer. И все необъявленные переменные в модуле, имена которых начинаются с буквы B имеют тип Boolean.
Оператор Option Explicit находящийся в начале общей области (General) модуля, запрещает неявное объявление переменных в указанном модуле. Если в меню редактора VBA Сервис-Параметры-Редактор установлен флажок “явное объявление переменных”, то все новые модули вставляемые в проект VBA будут содержать оператор Option Explicit.
2.3 Неименованные константы
В строковых неименованных константах текст берется в двойные кавычки:
“Текст”
Если нужно печатать кавычку ( “ ) в тексте, то этот символ в кавычках повторяют:
“Д””aртаньян” в память компьютера попадет текст: Д”aртаньян
В VBA есть понятие пустой строки, т.е. такой строки, которая не содержит в себе ни одного символа, такая строка задается плотно сжатыми кавычками - “”.
В целых неименованных константах числа записываются точно так же, как они записываются в математике.
Вещественных неименованных константах дробная часть от целой отделяется точкой, кроме того, латинская буква “e” указывает на степень десятки, которая умножается на вещественное число:
Пример:
1е-2 (т.е. 1 помножить на 10 в –2 степени)
В обоих примерах представлено число: 0,01
Логическая неименованная константа может иметь два значения:
True – соответствует истине
False – соответствует лжи
Неименованная константа типа Data может задаваться двумя ниже перечисленными способами:
#Месяц/Число/Год#
“Число.Месяц.Год”
где
Число – число, указывающее число месяца
Месяц – число, указывающее номер месяца
Год – число, указывающее год
Примеры:
#2/1/2003#
“1.2.2003”
В обоих примерах представлена следующая дата: 1 февраля 2003 года.
В неименованной константе типа Data может быть так же представлено время:
#Час:Минуты:Секунды#
“Час:Минуты:Секунды”
где
Час – число, указывающее час
Минуты –число, указывающее минуты
Секунды –число, указывающее секунды
Возможно задать время в 12 часовом режиме, в этом случаи, через пробел за временем вводятся две латинские буквы: PM – обозначают, что время указано после полудня, AM – обозначают, что время указано до полудня.
Пример:
#13:02:10#
“13:02:10”
“01:02:10 PM”
#01:02:10 PM#
Во всех примерах представлено следующее время: 13 часов 2 минуты 10 секунд.
Также, в неименованной константе Data может быть представлено и время и дата, при этом с начало записывается дата, а вслед за ним, через пробел время.
Пример:
#2/1/2003 13:02:10#
“1.2.2003 13:02:10”
#2/1/2003 01:02:10 PM#
“1.2.2003 01:02:10 PM”
Во всех примерах представлено следующая дата и время: 1 февраля 2003 года 13 часов 2 минуты 10 секунд.