- •Конспект лекций «Основы языка 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 (цикл с постусловием)
- •Адресация ячеек
- •Список использованной литературы
-
Оператор присвоения
Оператор присвоения присваивает значение выражения переменной, константе или свойству объекта. Оператор присвоения всегда включает знак равенства «=».
Синтаксис:
Переменная (Константа, Свойство Объекта) = Выражение
Оператор присвоения предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой части. В результате, например, действия следующей пары операторов
х = 2
х = х + 2
переменной х будет присвоено 4.
Для присвоения переменной ссылки на объект применяется инструкция Set. В следующем примере инструкция Set присваивает переменной область Диапазон А1:B3:
Set Область = Range(«А1:ВЗ»)
В общем случае инструкция set имеет следующий синтаксис:
Set ОбъектнаяПеременная = {[New] ОбъектноеВыражение | Nothing}
-
ключевое слово New используется при создании нового экземпляра класса;
-
ключевое слово Nothing позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (вольно говоря, она удаляет объект из памяти).
-
Структура программы. Процедуры. Функции
-
Основные понятия
-
Понятие модуля
-
-
Программа VBA представляет собой совокупность процедур и функций, размещенных в зависимости от особенностей решаемой задачи в одном или нескольких модулях (это специальные разделы Excel).
Модуль – это совокупность объявлений и процедур, хранящихся как единое целое.
Добавление модуля осуществляется по команде Insert \ Module (в этом случае программный код составляется пользователем) или при создании макроса (когда программа создается автоматически). Созданному модулю присваивается стандартное имя Module1, Module2 и т. д.
Для удаления модуля следует: выделить имя модуля, выбрать команду File \ Remove Module.
Каждый модуль отображается в окне, который имеет две области: общую область и область подпрограмм. В общей области помещаются операторы описания переменных, которые являются общими для всех процедур и функций этого модуля. В области подпрограмм помещается код программы. Окно программного кода предназначено для ввода, просмотра и редактирования процедур модуля. В данном окне можно просмотреть код выбранной процедуры или всех процедур модуля сразу.
Если в программе возникает необходимость частого обращения к некоторой группе операторов, то рационально сгруппировать такую группу в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие программные блоки называются подпрограммами пользователя. Подпрограммы в языках программирования реализуются посредством процедур и функций.
-
Понятие процедуры
Процедура – это самостоятельная (независимая) часть программы, которая имеет имя и может содержать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Данную процедуру можно вызвать по имени для выполнения определённых действий. Процедура выполняет один или несколько операторов и не возвращает значения. Примером процедуры является код макроса. Например:
Sub МойПервыйМакрос)
With Selection.Font
.Size = 18
.ColorIndex = 3
End With
End Sub
Процедура обозначается словом Sub. End Sub говорит о том, что процедура закончена. Процедура выполняется в ответ на какое-либо событие или говорят, что процедура обрабатывает событие.
Синтаксис:
[Private | Public] [Static] Sub ИмяПроцедуры [(СписокАргументов)]
[инструкции]
[Exit Sub]
[инструкции]
End Sub
Элементы описания:
|
Public |
Указывает, что процедура Sub доступна для всех других процедур во всех модулях |
|
Private |
Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана |
|
Static |
Указывает, что локальные переменные процедуры Sub сохраняются в промежутках времени между вызовами этой процедуры |
|
ИмяПроцедуры |
Имя процедуры Sub, удовлетворяющее стандартным правилам именования переменных |
|
СписокАргументов |
Список переменных, представляющий аргументы, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой |
|
Инструкции |
Любая группа инструкций, выполняемых в процедуре Sub |
|
Exit Sub |
Данная инструкция приводит к немедленному выходу из процедуры Sub. |
Синтаксис элемента СписокАргументов:
[Optional] [ByVal | ByRef] [ParamArray] ИмяПеременной[( )] _
[As тип] [= поУмолчанию]
|
Optional |
Ключевое слово, указывающее, что аргумент не является обязательным. При использовании этого элемента все последующие аргументы, которые содержатся в списке СписокАргументов, также должны быть необязательными и описаны с помощью ключевого слова Optional. Все аргументы, описанные как Optional, должны иметь тип variant. He допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray |
|
ByVal |
Указывает, что этот аргумент передается по значению |
|
ByRef |
Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в VBA по умолчанию |
|
ParamArray |
Используется только в качестве последнего элемента в списке СписокАргументов для указания, что конечным аргументом является описанный как Optional массив значений типа Variant. Ключевое слово ParamArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional |
|
ИмяПеременной |
Имя переменной, удовлетворяющее стандартным правилам именования переменных |
|
Тип |
Тип данных аргумента, переданного в процедуру; поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (ТОЛЬКО строки переменной длины), Object, Variant. Если отсутствует ключевое слово Optional, могут быть также указаны определяемый пользователем тип или объектный тип |
|
поУмолчанию |
Любая константа или выражение, дающее константу. Используется только вместе с параметром Optional. Если указан тип Object, единственным значением по умолчанию может быть значение Nothing. Например: Function Сумма (a As Double, Optional b As Double = 8) |
