
- •Введение в язык макрокоманд vba.
- •Типы данных
- •Описание констант
- •Описание переменных
- •Правила присвоения имен в языке Visual Basic
- •Старшинство операторов
- •Типы макросов.
- •Инструкции присвоения
- •Организация ветвлений. Инструкция If...Then...Else
- •If условие Then [инструкции] [Else инструкции_else]
- •Инструкция Select Case
- •Ввод и вывод информации
- •InputBox(текстовая_строка, заголовок)
- •Циклы в программе
- •Инструкция For...Next
- •Инструкция For Each...Next
- •Инструкция While….Wend
- •Объекты. Свойства. Методы.
- •Объект.Метод Инструкция Set
- •Application.Workbooks("Отчет").Worksheets("Май").Rows(2).Delete
- •Объекты Microsoft Excel
- •Объект Application
- •Объект Workbook. Свойства и Методы.
- •Объект Range
- •Строковые ссылки в стиле а1 или имена диапазонов
- •Числовые индексы строк и колонок
- •Свойства NumberFormat и WrapText
- •Свойство Offset
- •Свойства CurrentRegion и UsedRange
- •Объект Font
- •Объект Interior
Типы макросов.
Макросы бывают двух типов: подпрограммы и функции - VBA- подпрограммы и VBA- функции.
VBA- функции
Общий вид фунцкции пользователя:
Function имя_функции(список параметров)
тело функции
End Function
Тело функции состоит из описательной части блока операторов, выполняющихся один за другим. Именем функции или переменной может быть любой идентификатор, определенный пользователем. Идентификатор – это последовательность букв, цифр и символа подчеркивания, начинающаяся с буквы. Пробелы внутри идентификатора недопустимы, поэтому они заменяются символом подчеркивания.
Носителем возвращаемого функции пользователя является имя функции. Поэтому в теле функции пользователя, вычисляющей некоторое значение, должен присутствовать, по крайней мере, один оператор, присваивающий имени функции значение какого-либо выражения.
VBA- подпрограммы
Подпрограммы имеют стандартное оформление и размещаются на листе модуля там же, где и функции пользователя.
Sub имя_ подпрограммы (список_параметров)
тело_ подпрограммы
End Sub
Подпрограмма, так же как и функция, может возвращать значения, которые присваиваются параметрам внутри подпрограммы. В отличие от функций, подпрограммы нельзя вызывать из ячеек рабочего листа.
Инструкции присвоения
Инструкции присвоения присваивают выражение переменной или константе. Инструкции присвоения всегда включают знак равенства (=).
Алгоритм работы оператора следующий: вначале вычисляется значение выражения, стоящего в правой части от знака равенства, а затем результат присваивается переменной, стоящей в левой части от знака равенства.
Организация ветвлений. Инструкция If...Then...Else
Инструкция If...Then...Else выполняет определенные инструкции или наборы инструкций в зависимости от значения условия. Допускаются многократно вложенные инструкции If...Then...Else, имеющие столько уровней вложения, сколько потребуется. Однако для облегчения чтения программы вместо многократно вложенных инструкций If...Then...Else иногда предпочтительнее использовать инструкцию Select Case.
Синтаксис
If условие Then [инструкции] [Else инструкции_else]
Условие - это выражение логического типа. Результат вычисления условия всегда имеет булевский тип. Выражение может быть простым и сложным. При записи условий могут использоваться все возможные операции отношения.
Сложные условия образуются из простых путем применения логических операций и круглых скобок.
NOT логическое отрицание
AND - логическое И
OR – логическое ИЛИ
Допускается также использование блоковой формы синтаксиса:
If условие Then
Блок_операторов_1
Else
Блок_операторов_2
End If
Ветвь Else является необязательной.
Синтаксис вложенной блоковой формы:
If условие_1 Then
Блок_операторов_1
ElseIf условие-2 Then
Блок_операторов_2
elseif условие_3 Then
…
Else
блок_операторов
End If
Простую однострочную форму рекомендуется использовать для коротких, простых проверок. Однако блочная форма обеспечивает более структурированный подход и большую гибкость по сравнению с однострочной формой. Блочная форма обычно проще для чтения, обработки и отладки.
Инструкция Select Case
Выполняет одну из нескольких групп инструкций в зависимости от значения выражения. Синтаксис:
Select Case выражение
[Case списокВыражений-n
[инструкции-n]] ...
[Case Else
[инструкции_else]]
End Select
Синтаксис инструкции Select Case содержит следующие элементы:
Элемент |
Описание |
выражение |
Обязательный. Любое числовое выражение или строковое выражение. |
списокВыражений-n |
Обязательный при наличии предложения Case. Список с разделителями, состоящий из одной или нескольких форм следующего вида: выражение, выражение To выражение, Is операторСравнения выражение. Ключевое слово To задает диапазон значений. При использовании ключевого слова To перед ним должно находиться меньшее значение. Ключевое слово Is с операторами сравнения (кроме Is и Like) задает диапазон значений. Если ключевое слово Is не указано, оно вставляется по умолчанию. |
инструкции-n |
Необязательный. Одна или несколько инструкций, выполняемых в том случае, если выражение совпадает с любым компонентом списка списокВыражений-n. |
инструкции_else |
Необязательный. Одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает не совпадает ни с одним из предложений Case. |
В каждом предложении Case допускается использование нескольких выражений или диапазонов. Например, допустима следующая строка:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Имеется также возможность задать диапазоны или несколько выражений для строковых значений.
Инструкция Select Case может служить альтернативой инструкции ElseIf в If...Then...Else при оценке одного выражения, которое имеет несколько возможных значений.