End Sub

End Sub

End Sub

End If

If условие Then

[инструкции]

[ElseIf условие-n Then

[инструкции_elseif] ...

[Else

[инструкции_else]]

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

Если не возникает необходимости выполнять какие либо действия, при не выполнении условия, то конструкция может иметь сокращенную запись вида:

 

Пример:

 

Sub Test()

If IsError(Range("A1")) = True Then Range("B1") = "ошибка"

В приведенном выше примере проверяется наличие ошибки в введенной формуле в ячейке [A1]. Если формула содержит ошибку, то в ячейку B1 будет выведено сообщение “ошибка”. Если формула введена верно, то никаких сообщений выводится не будет.

Проверка условий может выполняться с использованием сложных реляционных выражений.

Пример:

Sub Test()

If IsError(Range("A1")) = True OrIsEmpty(Range("A1")) = True Then _

Range("B1") = "не верное действие"

В приведенном выше примере проверяется условие, при котором в ячейку [A1] не верно введена формула или в ней отсутствует какая либо запись. В случае выполнения условия в ячейку [B1] выводится сообщение “не верное действие”.

 

При проверке условий могут использоваться следующие реляционные операторы и выражения: <, >, =, <>, And, Or, Xor, Not и некоторые другие, а также функции и выражения возвращающие логические значения.

 

В процессе разработки программ часто возникает необходимость в заполнении таблиц значениями функций (синтеза таблиц) и обработки массивов данных. Для решения таких задач в VBA имеется программная конструкция цикла типа счетчик For …To … Steep … Next. В общем случае синтаксис конструкции имеет следующий вид:

 

For счетчик = начало To конец [Step шаг]

[инструкции]

[Exit For]

[инструкции]

Next [счетчик]

 

Рассмотрим на примерах практическое применение данной конструкции.

 

Предположим, что необходимо вычислить значение функции вида y = f(x) c шагом изменения s = 0,01 в диапазоне значений –1…+1. Результат вычислений необходимо вывести в первый столбец листа Excel. Пусть задана функция y = Sin(x).

 

Пример:

Sub Test()

Dim i, AC

AC = 1 'присвоение начального значения указателю адреса

For i = -1 To 1 Step 0.01

AC = AC + 1 'текущее значение указателя адреса

Cells(AC, 1) = Sin(i) 'вывод значений функции

Next i

Поясним работу вышеприведенной процедуры. В данном случае переменная AC является указателем строки ячеек Листа Excel и ей присваивается начальное значение = 1. При выполнении каждого шага цикла значение переменной AC увеличивается на 1. В первом шаге цикла переменной i присваивается начальное значение равное –1, которое увеличивается в каждом последующем шаге цикла на 0,01. Значение переменной i является аргументом функции Sin(i). Цикл завершается, когда значение переменной i достигнет 1.

Предположим, что необходимо заполнить 100 ячеек во 2 - м столбце Листа Excel случайными числами. Следующий пример демонстрирует реализацию поставленной задачи.

 

Пример:

Sub Test()

Dim i