- •Конспект лекций «Основы языка Visual Basic for Applications»
- •Содержание
- •Основные элементы vba
- •Что такое vba
- •Понятие объектов и их семейств
- •Свойства
- •События
- •Структура редактора vba
- •Окно проекта
- •Окно для редактирования кода
- •Интеллектуальные возможности редактора кода
- •Команды Меню интегрированной среды vba
- •Панели инструментов
- •Работа с макросами
- •Понятие макросов
- •Запись макросов
- •Выполнение макросов
- •Просмотр кода макроса
- •Редактирование кода макроса
- •Удаление макросов
- •Назначение макросов командным кнопкам
- •Назначение макроса графическим изображениям
- •Назначение макросов кнопкам панелей инструментов
- •Основные понятия языка программирования vba
- •Понятие и общие правила написания программного кода
- •Типы данных
- •Объявление переменных
- •Допустимые имена
- •Массивы
- •Константы
- •Операторы ввода / вывода информации
- •Простейшие операции
- •Операции vba
- •Приоритет выполнения операций в выражениях
- •Оператор присвоения
- •Структура программы. Процедуры. Функции
- •Основные понятия
- •Понятие модуля
- •Понятие процедуры
- •Понятие функции
- •Правила для имён процедур и функций
- •Вызов процедур и функций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования типов
- •Функции обработки строк
- •Функции времени и даты
- •Реализация разветвляющихся алгоритмов
- •Условный оператор If … Then
- •Вложенные конструкции для принятия решений с использованием условного оператора If … Then
- •Многозначные ветвления If … Then
- •Оператор выбора Select Case
- •Циклы с заданным количеством повторений For
- •Цикл For … Next
- •Вложенные циклы For … Next
- •Циклы с логическим управлением повторениями While и Do
- •Цикл While … Wend (цикл с предусловием)
- •Цикл Do While … Loop (цикл с предусловием)
- •Цикл Do … Loop While (цикл с постусловием)
- •Адресация ячеек
- •Список использованной литературы
-
Понятие функции
Функция аналогична процедуре, но отличается тем, что возвращает в точку вызова основной программы единственный результат. Например,
Y = ABS(X)
- определяет модуль числа X и возвращает результат, который присваивается переменой Y.
Приведенный ниже синтаксис описывает имя, аргументы и текст программы, составляющие тело функции.
Синтаксис:
[Public | Private] [Static] Function Имя [(СписокАргументов)] [As Тип]
[Инструкции]
[Имя = Выражение]
[Exit Function]
[Инструкции]
[Имя = Выражение]
End Function
Синтаксис инструкции Function содержит те же элементы, что и Sub. Инструкция Exit Function приводит к немедленному выходу из функции. Подобно процедуре Sub, процедура Function является самостоятельной процедурой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Однако в отличие от процедуры Sub, когда требуется использовать возвращаемое функцией значение, процедура Function может применяться в правой части выражения, как и любая другая встроенная функция, например, cos. Для возврата значения из функции следует присвоить значение имени функции. Любое число таких инструкций присвоения может находиться в любом месте процедуры.
VBA можно использовать для создания собственных функций. Например, можно определить функцию Процент (число), которая будет определять процент от числа.
Public Function Процент (число)
Процент = число*0.01/100
End Function
Функция может иметь аргумент Число. Аргумент Число может быть числом или ссылкой на ячейку рабочего листа. Величина процента является тем значением, которое возвращает функция.
-
Правила для имён процедур и функций
В VBA существуют определённые правила для имён процедур и функций:
-
первые три символа имени должны быть буквами;
-
имя может содержать буквы, цифры и знаки подчёркивания;
-
имя не может содержать пробелы, точки, запятые, восклицательные знаки и символы @, &, $, #;
-
имя не должно иметь более 255 символов.
Как и для имен переменных, для имен функций можно использовать выделение отдельны символов регистром букв.
-
Вызов процедур и функций
Вызов процедур и функций из другой процедуры (функции) осуществляется посредством указания имени процедуры (функции) и списка параметров:
ИмяПроцедуры СписокФактическихПараметров
Call ИмяПроцедуры(СписокФактическихПараметров)
ИмяФункции(СписокФактическихПараметров)
|
ИмяПроцедуры, ИмяФункции |
Имя вызываемой процедуры |
|
СписокФактическихПараметров |
Список аргументов, передаваемых процедуре. Он должен соответствовать списку, заданному в процедуре по количеству и типу. |
При этом для функции список параметров должен быть указан в скобках, а для процедур возможно два вариант:
– с применением ключевого слова Call, в этом случае список параметров заключается в скобки;
– без применения ключевого слова Call и без скобок.
