
- •Федеральное агентство по образованию
- •Введение в vba
- •Объектно-ориентированное программирование
- •Основные понятия
- •Алфавит и словарь языка
- •Переменные
- •Константы
- •Строковые переменные
- •Массивы
- •Пользовательские типы данных
- •Операции vba
- •Объектная модель Excel
- •Свойства и методы объектов
- •Отображение объектной модели Excel
- •Иерархия объектной модели
- •Ссылка на объекты в коде vba
- •Работа с объектами
- •Задание свойств объекта
- •Использование методов объекта
- •Переменные-объекты
- •Коллекции
- •Метод Add
- •Свойство Count
- •Свойства и методы основных объектов Excel
- •Объект Application
- •Объект Worksheet
- •Объект Range
- •Просмотр объектов
- •Использование справочной системы
- •Использование функциональной клавиши f1
- •Использование помощника
- •Вывод сообщений и ввод и данных
- •Функция MsgBox
- •Функция InputBox
- •Метод InputBox
- •Объединение текстовых строк
- •Концепция событий Excel
- •Типы событий Excel
- •События объекта Workbook
- •События объекта Worksheet
- •События объекта Application
- •События объекта UserForm
- •События, не связанные с конкретными объектами
- •Метод OnKey
- •Событие OnTime
- •Формы пользователя
- •Свойства, методы и события экранных форм
- •Некоторые свойства форм
- •Некоторые методы форм
- •Некоторые события форм
- •Элементы управления
- •Элемент управления Label (Надпись)
- •Окно свойств формы
- •Элемент управления CommandButton (Кнопка)
- •Элемент управления TextBox (Текстовое поле)
- •Элемент управления ComboBox
- •Элемент управления ListBox (список)
- •Элемент управления CheckBox (Флажок)
- •Элемент управления ToggleButton (Выключатель)
- •Элемент управления OptionButton (Переключатель)
- •Элемент управления Image (Рисунок)
- •Элемент управления ScrollBar (полоса прокрутки)
- •Элемент управления SpinButton (Счётчик)
- •Элемент управления RefEdit (Поле со свёртыванием)
- •Элементы управления на рабочем листе
- •Инструкции vba
- •Оператор присваивания
- •Инструкция Set
- •Инструкция For… Next
- •Инструкция While…Wend
- •Инструкция Do... Loop
- •Инструкция For Each…Next
- •Инструкции перехода
- •Инструкция условного перехода If…Then…Else
- •Инструкция Select…Case
- •Инструкция безусловного перехода GoTo
- •Инструкции перехода к обработчику ошибок On Error
- •Инструкции прерывания выполнения блока Exit
- •Инструкция передачи управления выполнением процедуры подпрограмме внутри процедуры GoSub… Return
- •Инструкция передачи управления выполнением процедуры на одну из нескольких строк кода On…GoSub и On…GoTo
- •Функции vba
- •Встроенные функции
- •Математические функции
- •Функции преобразования данных
- •Функции даты и времени
- •Строковые функции
- •Примеры использования функций vba
- •Удаление ненужных символов
- •Определение длины строки
- •Сравнение и поиск строк
- •Функция StrComp
- •Функция InStr
- •Выделение части строки
- •Функция Left
- •Функция Right
- •Функция Mid
- •Форматирование значений данных
- •Функции, определённые пользователем
- •Пример функции
- •Файлы vba
- •Типы файлов в vba
- •Открытие и закрытие файла
- •Ввод данных в файл последовательного доступа
- •Вывод данных из файла последовательного доступа
- •Работа с файлом произвольного доступа
- •Создание процедуры
- •Выполнение процедуры
- •Сохранение процедуры
- •Запись последовательности действий пользователя
- •Просмотр кода макроса
- •Отладка программ
- •Тестирование и отладка как этап разработки приложений
- •Отладка
- •Режим останова
- •Использование окна Immediate
- •Просмотр значений в окне Immediate
- •Пошаговое выполнение программ
- •Исправление ошибок
- •Библиографический список
- •Оглавление
Алфавит и словарь языка
Программа на языке VBA формируется из предложений, состоящих из лексем и разделителей, которые формируются из конечного набора литер, образующих алфавит языка VBA.
Лексема – это единица текста программы, которую распознаёт компилятор и которая не может быть разбита в дальнейшем. В Visual Basic различают шесть классов лексем: идентификаторы; ключевые (зарезервированные) слова; константы; строки; операции (знаки операций); разделители.
В алфавит VBA входят:
буквы латинского алфавита прописные: A, B, C, D, E, F, … X, Y , Z и строчные: a, b, c, d, e, … x, y, z;
буквы кириллицы прописные: А, Б, В, Г, В, Е … Э, Ю, Я и строчные и строчные: а, б, в, г, д., е … э, ю, я;
цифры от 0 до 9;
символ подчеркивания “_”.
Данные символы используются для построения идентификаторов: имен переменных, констант, процедур, функций, меток переходов и имен типов. Использование строчных букв эквивалентно построению соответствующих конструкций из прописных букв и используются для стилистического оформления программы.
Кроме этих символов, в состав алфавита также входят:
не изображаемые символы, используемые для отделения лексем друг от друга (пробел, табуляция, переход на новую строку). Лексемы включают в себя зарезервированные слова, идентификаторы (стандартные и пользовательские), специальные символы и метки;
специальные символы, участвующие в построении конструкций языка (табл. 1).
Специальные символы Таблица 1
+ |
плюс |
< |
меньше |
[ ] |
квадратные скобки |
– |
минус |
_ |
подчёркивание |
( ) |
круглые скобки |
* |
звёздочка |
. |
точка |
^ |
тильда |
/ |
дробная черта |
, |
запятая |
‘ |
апостроф |
= |
равно |
: |
двоеточие |
$ |
знак доллара |
> |
больше |
; |
точка с запятой |
<> |
Не равно |
<= |
меньше или равно |
>= |
больше или равно |
|
|
Из этих символов образуются слова языка VBA. Слова в программах отделяются друг от друга разделителями и специальными символами. Разделителями являются:
пробел;
символ продолжения строки ( _ );
символ табуляции.
Специальные символы: +, – ,* , / , ’, . , =, <, >, : - используются для обозначения операторов и других языковых конструкций. Все слова языка VBA можно разделить на четыре группы:
имена (идентификаторы);
ключевые (зарезервированные) слова;
числа;
строки.
Имя (идентификатор) – произвольная последовательность букв латинского и русского алфавита и цифр, не превышающая 255 символов, которая обязательно должна начинаться с буквы на любом регистре букв (верхнем или нижнем). Идентификатор может включать также символы подчеркивания. В качестве идентификаторов нельзя использовать ключевые слова языка и имена стандартных объектов. Имя не может содержать точек, пробелов и следующих символов: %, .&,!, #, @, $. Рекомендуется идентификаторы, состоящие больше чем из одного слова, разделять символом подчёркивания или писать слитно, начиная каждое слово с прописной буквы, а остальную часть слова писать прописными. Имена должны быть уникальны внутри области, в которой они определены, и по возможности обозначать смысл идентификатора. Идентификаторы используются для обозначения переменных программного кода VBA. Примеры идентификаторов: Цена_товара, ЦенаТовара, Numero, Contador и т.д.
Идентификаторы применяются также для обозначения объектов, методов и свойств VBA, которые представляют собой однозначно определённые лексемы. Хотя VBA позволяет использовать эти лексемы в качестве идентификаторов переменных, тем не менее не рекомендуется это делать во избежание непредвиденных ошибок.
Ключевое (зарезервированное) слово – это слово, которое представляет целую языковую конструкцию или ее часть и может использоваться только в том виде, в каком оно указывается при описании синтаксиса языка. Никакое другое слово в программе не должно совпадать с ключевым словом. Обычно первая буква ключевого слова – прописная, но можно вводить слово только строчными буквами. Если при вводе программного кода в слове нет ошибки, редактор исправит его так, как это принято в языке. В противном случае VBA выдаёт сообщения об ошибке компиляции, например, такие:
Ключевые слова, используемые для построения инструкций, например, As, Dim, For, ER Integer и т.п., ERVBA выделяет синим цветом и первую букву делает прописной.
Текст программы на языке VBA состоит из последовательности предложений, каждое из которых представляет собой комбинацию ключевых слов и идентификаторов.
Строка – произвольная последовательность символов алфавита, заключенная в двойные кавычки (“”). Если строка включает символ кавычки, перед ним ставится еще один такой же символ, чтобы отличить его от символа конца строки, например “ОАО ““Океан””.
Число используется для представления дробных и целых чисел. Целое число записывается в виде последовательности цифр. Для записи десятичных чисел в качестве разделителя десятичных знаков используется точка “.”. Для записи чисел можно использовать экспоненциальную форму.
Строка – произвольная последовательность символов алфавита, заключенная в двойные кавычки (“”). Если строка включает символ кавычки, перед ним ставится еще один такой же символ, чтобы отличить его от символа конца строки, например “ОАО ““Океан””.