Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по VBA.doc
Скачиваний:
107
Добавлен:
26.08.2019
Размер:
1.04 Mб
Скачать

2. Основные понятия

Приложение, созданное на VBA, имеет модульную структуру. Это означает, что процедуры, входящие в приложение, группируются в модули.

Проект – совокупность модулей, предназначенных для решения комплекса задач предметной области.

Модуль – совокупность описаний, процедур и функций.

Инструкция (оператор) – единица кода, которая является операцией или описанием.

Описание – это инструкция, используемая для описания переменных, массивов, констант, типов данных, а также ссылок на внешние функции.

Процедура – поименованный набор описаний и инструкций, сгруппированных для решения определенной задачи.

Процедуры, переменные, модули, константы и другие объекты имеют имена. Имена должны быть понятными и отражать назначение объекта. При именовании следует придерживаться следующих правил:

  • Длина имени не должна превышать 256 символов.

  • В имени можно использовать любую комбинацию букв, цифр и символов, но оно должно начинаться с буквы.

  • Имена не должны включать точек, пробелов и следующих символов: % & ! # @ $

  • Имена должны быть уникальны внутри области определения.

Область определения зависит от того, где определена процедура, функция или переменная. В одном модуле не может быть процедур и функций с одинаковыми именами, а внутри процедуры или функции имена переменных и массивов не должны дублироваться.

VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub. Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений. Property используется для ссылки на свойство объекта. Применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры Sub подразделяются на процедуры, связанные с элементами управления (событийные) и процедуры общего назначения.

Объект - это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства и некоторые методы для управления объектом. Кроме элементов управления, имеется много встроенных объектов. Например, Worksheet - рабочий лист, Sheet - лист, Range - диапазон ячеек, Cells -ячейка, Dialogsheet - диалоговое окно.

3. Редактор vba

Разработка модулей (процедур) выполняется в редакторе VBA с использованием одного из двух основных методов.

Автоматическая запись макроса и его редактирование. Этот метод позволяет записать выполняемые пользователем действия, а затем в любое время воспроизвести их, т.е. автоматизировать работу. При записи макроса основное приложение создает процедуру с именем макроса, которую можно просмотреть и отредактировать. Требуется выбрать кнопку Записать макрос, выполнить требуемую последовательность действий и остановить макрос. Затем выбрать записанный макрос в списке макросов и нажать кнопку Изменить. Запускается окно редактора VBA и в окне модуля выводится текст макроса. Запись макросов очень полезна для ознакомления с приемами программирования. Например, вы не знаете как запрограммировать вычерчивание отрезка прямой линии: включаете запись макроса, выполняете графические операции с помощью панели инструментов Рисование и смотрите, как выглядят соответствующие инструкции VBA.

Создание процедур и функций в редакторе. В этом случае на лист Excel выносятся требуемые элементы управления и создаются процедуры, связанные с ними, а также процедуры и функции общего назначения.

На рисунке 1 представлено окно проекта, в котором элементы отображаются в виде иерархической структуры, включающей формы, модули, объекты основного приложения (листы книги Excel) и рабочее окно редактора VBA.

Ввод инструкций в редакторе VBA:

  • В одной строке можно записать одну или несколько инструкций,

  • Несколько инструкций в одной строке разделяются символом : (двоеточие),

  • Для продолжения инструкции в следующей строке надо ввести пробел и символ _ (подчерк) в конце строки,

  • Комментарии начинаются с символа ' (апостроф), комментарии служат для пояснения, они могут записываться как в отдельных строках, так и строке с инструкцией.

Инструкция VBA состоит из элементов, среди которых могут присутствовать:

  1. Ключевое слово - это слово или символ, которые распознаются как элементы языка программирования, например, If, Else, Sub, For и т.д.

  2. Выражение - комбинация ключевых слов, переменных и констант; результатом выражения является строка, число или логическое значение.

  3. Переменная - поименованная область памяти, отведенная для временного хранения данных, которые могут изменяться при выполнении программы.

  4. Массив - поименованная область памяти состоящая из набора элементов (обычно - переменных) определенного типа, каждый элемент имеет свой порядковый номер. Порядковый номер называется индексом элемента в массиве.

  5. Константа - поименованный элемент, сохраняющий постоянное значение втечение выполнения программы.

  6. Методы и свойства объектов: методы - это действия, которые выполняются объектом, а свойства - это переменные, описывающие характеристики объекта. Методы и свойства записываются через точку после имени объекта, например, TextBox1.Text.

Переключение на окно Excel

С оздание формы в редакторе VBA

Рис. 1. Окно Visual Basic, в нем окна проекта и редактора

Структура процедуры:

[Private] Sub имя ([аргументы]) - заголовок процедуры

Инструкции - тело процедуры

End Sub - конец процедуры

Имя - имя создаваемой процедуры;

Аргументы - переменные, позволяющие передать в процедуру требуемые значения.

Private - процедура может использоваться только модулем в котором она находится.

Структура функции:

[Private] Function имя ([аргументы]) [As Type] - заголовок функции

Инструкции - тело функции

Имя= выражение - возвращаемое значение

End Function - конец функции

Имя - имя создаваемой функции;

Аргументы - переменные, позволяющие передать в функцию требуемые значения.

As Type - выражение, определяющее тип результата, возвращаемого функцией.

Пример функции: вычисление длины окружности.

Имя - Circle, аргумент -R (радиус окружности).

Function Circle (R as Double) as Double

Const Pi as Double= 3.14159

Circle=2*Pi*R

End Function

Вызов функции Circle из другой функции или процедуры:

R2=5: S2 =Circle (R2) ' Значение S2 будет равно 31.4159

Аргумент, описанный в функции или в процедуре (в этом примере – это переменная R), называют формальным параметром, а значение аргумента, фактически передаваемое функции или процедуре при ее вызове (в этом примере – переменная R2) , называют фактическим параметром.

Пример процедуры: вычисление длины окружности.

Имя - Circle, аргументы: R(радиус окружности), S(длина окружности).

Sub Circle (R as Double, S as Double)

Const Pi as Double= 3.14159

S=2*Pi*R

End Sub

Вызов процедуры Circle из функции или другой процедуры:

Circle R2, S2