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