
- •Часть 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.2 Правила оформления конструкций языка vba в общем виде
При написании конструкций языка VBA в общем виде мы придерживались в этой книге следующих правил:
Необязательные параметры элементов конструкции берутся в квадратные скобки […].
Если в элементе конструкции может использоваться только один из указанных параметров, то такие параметры разделяются символом /.
Служебные слова в конструкции выделяются жирным шрифтом.
Идентификаторы в конструкции пишутся курсивом.
Строки, которые могут содержать операторы VBA помечаются символом точка “.”.
1.3 Идеология визуальных языков
Как и в классических языках программирования в VBА сохраняются такие языковые конструкции как: Оператор присваивания, Условный оператор и Оператор выбора, Операторы цикла, процедуры и функции. В отличие от классических языков программирования в VBA весь текст программы состоит из процедур и функций. Работа программы есть последовательное выполнение событийных процедур, которые выполняются как ответная реакция на соответствующие события, происходящие в компьютере (нажатие клавиш клавиатуры, перемещение мыши и др.). Из событийных процедур производится запуск обычных процедур и функций. В VBA, в отличие от классических языков программирования, подпрограммы, находящие внутри одного и того же модуля, могут вызвать любую подпрограмму модуля в независимости от порядка их объявления в модуле.
1.4 Основные понятия визуальных языков
Прежде чем прочесть данную главу, рекомендуем вам прочесть Приложение 9 (Основные понятия визуального программирования на доступных примерах) , это особенно будет полезно, если вы никогда не программировали в визуальных средах.
Класс – особый тип для создания объектов
Объект - экземпляр класса характеризующийся:
Свойством (Полем, Атрибутом) – определяет состояние объекта, его ширину, высоту, цвет или какое-либо другое состояние, которое не обязательно определяется визуально;
Методом – способ изменения свойств объекта;
Событием – действие (операция) происходящее с объектом (попадание объекта в фокус и потеря им фокуса, нажатие левой клавишей мыши на объекте и т.п.);
Элемент управления, компонент, инструмент – особый объект, предназначенный для визуально управления программой (кнопка, однострочный редактор, поле со списком и т.п.)
Классы в объектно-ориентированном программировании могут происходить от других классов. Такие классы называются потомками, а те классы, от которых они происходят, – родителями. В потомках могут сохраняться методы и свойства от родителей. Такая способность классов называется наследственностью.
Если метод в потомке имеет тоже же имя что и у родителя, но выполняет другую функцию, то эта способность называется полиморфизм.
1.5 Дополнительные понятия языка vba
Алфавит языка – символы, которые используются в языке программирования. В VBA это латинские буквы и кириллица, а так же арабские цифры и специальные символы;
Комментарии – не влияют на выполнение программы, но помогают ориентироваться в ней программисту, строка комментариев начинается со знака (‘) - апостроф;
Перенос строки – совокупность знаков «пробел» и «подчеркивание» - « _»;
Идентификатор (символическое имя) – имя переменной, именованной константы, поля, метода, процедуры или функции, а так же имя объекта, через которое происходит обращение к последнему. Идентификатор может содержать один и более символов. Первым символом должна быть обязательно буква. В идентификаторе можно использовать цифры и некоторые специальные символы (например, знак подчеркивания) ;
Продолжение однострочной конструкции – символ двоеточие ”:”, через который можно записать несколько операторов в плечах однострочной конструкции условного оператора. С его помощью можно также записать несколько операторов VBA в одной строке;
Переменная – область в оперативной памяти компьютера, которая имеет имя; способна содержать в себе информацию определенного типа:
Глобальная переменная – переменная, которая используется во всем модуле в любой подпрограмме;
Локальная переменная - переменная, которая используется только в конкретной подпрограмме;
Именованная константа - область в оперативной памяти компьютера, которая имеет имя, и содержит в себе информацию, которую нельзя изменить во время работы программы;
Неименованная константа – способ записи числовых, строковых и других значений используемых в арифметических и в других выражениях;
Оператор – команда (инструкция) для компьютера;
Программа – совокупность всех операторов, направленных на то, что бы компьютер выполнял определенные действия;
Подпрограмма – общее название для процедуры и функции. Обособленная часть программы, которая имеет имя и которую можно вызывать для выполнения конкретных операций;
Процедура – часть программы, имеющая имя и которую можно вызвать из другой подпрограммы;
Событийная процедура объекта – часть программы, которая выполняется по свершению определенного события, происходящего с определенным объектом;
Функция – часть программы, предназначенная, как правило, для вычисления значения выражения;
Проект – файл, в котором находится программа. Для VBA for Excel это рабочая книга Excel;
Диалоговые окна – стандартные диалоговые окна, встроенные в язык VBA, которые обеспечивают диалог человека с компьютером;
Форма – диалоговое окно, созданное пользователем;
Модуль – представляет собой именованную область внутри проекта, которая содержит в себе процедуры и функции. Имеется следующая разновидность модулей:
Модуль рабочей книги (стандартное имя ThisWorkbook или в некоторых русских версиях Excel - ЭтаКнига)
Модуль листа рабочей книги (Имя модуля листа совпадает по умолчанию с именем листа)
Модуль макросов (Этот модуль может так же, помимо макросов, содержать в себе процедуры имеющие входные параметры, а так же функции. Имя такого модуля по умолчанию начинается со слова Модуль. Название этого модуля в английских версиях Excel начинается со слова Module.)
Модуль формы (Обеспечивает работу диалогового окна созданного пользователем. Имя этого модуля совпадает с именем формы.)
Модуль класса ( Содержит в себе класс, созданный пользователем. Используется для последующего создания экземпляров пользовательского класса.)