- •Лекция «Visual Basic for Application»
- •Создание программ
- •Создание новой программы
- •Объявление процедуры
- •Инструкции
- •Правила именования объектов в vba
- •Описание функций
- •Инструкции
- •Использование операторов
- •Объявление констант
- •Объявление переменных
- •Типы данных vba
- •Использование типа Variant: за и против
- •Область определения переменных
- •Оператор присваивания
- •Параметры компилятора
- •Исполняемые операторы
- •Операции в vba
- •Приоритет операций
- •Использование встроенных функций vba
- •Имя_функции([аргументы])
- •InputBox(“Вводи х”, ”Моя программа ”, 8)
- •Функции ввода-вывода Функция InputBox
- •Функция вывода. Функция Msgbox
- •Управляющие структуры
- •Условный оператор if
- •Однострочный синтаксис if
- •If условие Then команда1 [Else команда2]
- •Многострочный синтаксис оператора if
- •Вложенные операторы if
Лекция «Visual Basic for Application»
-
Создание программ
VBA работает с двумя видами программ: процедурами и функциями. Они являются критическими функциональными единицами VBA, в том смысле, что вы имеете возможность выполнить только тот программный код, который содержится в программе.
! Программный код, содержащийся вне каркаса программы, выполняться не будет.
Почти весь создаваемый пользовательский код содержится в программах двух видов: Sub и Function.
Программы типа Sub называются процедурами и подразделяются: на простые процедуры (не относящиеся ни к какому объекту), процедуры обработки событий (процедуры, которые выполняются при наступлении определенного события, например: нажатие на кнопку или выбор элемента из какого-либо списка и т.д.) и процедуры типа Property (процедура свойства, которая выясняет или устанавливает значение свойства какого-либо объекта).
-
Создание новой программы
-
Необходимо открыть модуль, в котором будет размещена программа:
-
Вызвать редактор VBA;
-
Вставка –> Модуль (Insert –> Module) или 2-ой щелчок по имени существующего модуля в окне проекта.
Создать каркас программы.
-
Объявление процедуры
Sub Имя_программы( [аргументы] )
Инструкции
End Sub
Где, Sub … End Sub – каркас программы, ключевые слова, обозначающие начало и конец процедуры.
Имя_программы – наименование процедуры. Может быть набрано как русскими, так латинскими буквами. Должно подчинятся правилам именования объектов.
[аргументы] – позволяют передать в процедуру требуемые для расчетов значения. Являются необязательными параметрами. Если процедура не требует никаких аргументов после имени.
(Здесь и далее [ ] обозначают, что элемент, заключенный в квадратные скобки является не обязательным и может быть опущен).
Например,
Sub День_недели()
Msgbox ”Сегодня – среда”
End Sub
Эта процедура выведет диалоговое окно с сообщением ”Сегодня – среда”.
Правила именования объектов в vba
-
Имя (идентификатор) объекта не должно превышать 255 символов;
-
Имя объекта не должно содержать пробелов;
-
Не должно содержать специальных символов:
! @ $ ‘ # ? / () {} [] = ^ / * - + ~ <> ^ ?;
-
Не должно совпадать с ключевыми словами VBA (Sub, If, Do и т.д.);
-
В рамках одного модуля совпадение имен процедур запрещается.
-
Описание функций
Основное отличие процедур и функций заключается в том, что процедуры предназначены для выполнения каких-либо действий, могут возвращать несколько результатов или не возвращать ни одного. Функция же всегда возвращает какое-либо одно значение.
Описание функции имеет следующий синтаксис:
Function имя_функции ([аргументы]) [As Тип]
Инструкции
имя_функции= выражение
End Function
Где, Function … End Function – ключевые слова, обозначающие начало и конец функции;
имя_функции – идентификатор, подчиняющийся правилам именования объектов;
аргументы – необязательные параметры, передающие в функцию требуемые значения для расчетов;
As Тип – объявляет тип возвращаемого функцией значения;
имя_функции= выражение – обязательная инструкция, связывающая имя функции с конечным результатом вычислений.
Например:
Function Сумма(x As Integer, y As Integer) As Long
Сумма = x + y
End Function
В эту функцию передается два числа х и у целого типа. Функция находит их сумму и возвращает результат типа Long. Конечный результат вычислений связывается с именем функции. Воспользоваться этой функцией можно, например, так, для вычисления выражения
Sub Вычисление_z()
Dim a As Integer, b As Integer
Dim c As Integer, d As Integer, z As Double
a = Range("A1").Value
b = Range("A2").Value
c = Range("A3").Value
d = Range("A4").Value
z = Сумма(a, b) * Сумма(a, c) / Сумма(b, d)
Msgbox "Значение выражения " & z
End Sub
В этой процедуре объявляются четыре переменные целого типа и одна z – вещественного типа. Значения для переменных берутся с активного листа из ячеек А1, А2, А3 и А4. При вычислении z три раза вызывается функция Сумма с конкретными значениями для аргументов.