Оценить:
 Рейтинг: 3.6

Excel. Трюки и эффекты

Год написания книги
2011
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 24 >>
На страницу:
14 из 24
Настройки чтения
Размер шрифта
Высота строк
Поля

GoTo Имя_метки

Инструкции, расположенные после GoTo, выполняются только в том случае, если в программе существуют соответствующие инструкции GoTo или GoSub. Рассмотрим пример использования GoTo:

a = 15 + b

If a < 0 Then GoTo 10

' Выполнение действий для значения переменной a больше нуля

10:

' Выполнение действий для значения переменной a меньше нуля

Следует отметить, что частое использование инструкции GoTo в программе не рекомендуется, так как может сделать алгоритм слишком запутанным. GoTo нередко допустимо заменить инструкциями выбора либо вызовом процедуры или функции.

Пара инструкций GoSub-Return

Во времена старого доброго языка Basic инструкции GoSub и Return были незаменимы для программиста. Это было связано с тем, что Basic не был даже процедурным языком программирования: в нем не было процедур и функций, все инструкции записывались в виде единой программы. Чтобы не реализовывать несколько раз одинаковые действия, в этой большой программе выделялись отрезки кода, выполняющие типичные действия, – подпрограммы. Подпрограмма начиналась некоторой меткой и оканчивалась инструкцией Return.

При достижении инструкции Go Sub осуществлялся переход на указанную метку (аналогично инструкции GoTo) – начинала выполняться подпрограмма. При достижении инструкции Return происходил возврат из подпрограммы – выполнение программы продолжалось после последней инструкции Go Sub.

Пара инструкций GoSub-Return в языке VBA работает точно таким же образом, но переходы осуществляются только в пределах процедуры или функции. Формат инструкций GoSub-Return такой:

GoSub Имя_метки

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

Имя_метки:

[Инструкции подпрограммы]

Return

Ниже приведен пример использования инструкций GoSub-Return (в подпрограмме вычисляется квадрат длины гипотенузы прямоугольного треугольника):

a = 5

b = 4

GoSub Calculate

' Другие действия



Calculate:

' Подпрограмма

c2 = a ^ 2 + b ^ 2

Return

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

Процедуры и функции

В языке VBA программист должен записывать все инструкции своей программы внутри специальных блоков: функций и процедур. Код внутри процедуры или функции представляет собой подпрограмму, выполняющую требуемые действия. Перед рассмотрением способов создания процедур и функций необходимо узнать, чем же различаются эти два вида подпрограмм в VBA.

Процедура – это подпрограмма, которая выполняет действия, не возвращая никакого значения в качестве результата либо возвращая некоторые значения путем изменения переданных ей параметров. Функция в дополнение к возможностям процедуры может возвращать некоторое результирующее значение.

Далее в этом разделе будут рассмотрены особенности создания и использования процедур и функций в программах на VBA.

Объявление процедур

Для объявления процедуры в VBA используется следующая конструкция:

[Private | Public] [Static] Sub Имя_процедуры [(Список_аргументов)]

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

[Exit Sub]

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

End Sub

Ключевые слова Private и Public данной конструкции задают область видимости процедуры.

• Public – применяется по умолчанию, позволяет создать процедуру, которую можно вызывать из любого места проекта VBA. При использовании в модуле класса она дает возможность создавать общую процедуру (метод) этого класса.

• Private – позволяет создать процедуру, которую можно вызывать только в том модуле VBA, где данная процедура объявлена. При использовании в модуле класса дает возможность создавать личную процедуру (метод) этого класса.

Если в объявлении процедуры используется ключевое слово Static, то значения всех локальных переменных данной процедуры сохраняются между ее вызовами. Это эквивалентно использованию инструкции Static вместо Dim при объявлении каждой локальной переменной внутри процедуры.

Имя_процедуры – это любой корректный идентификатор VBA, который будет употребляться в программе в случае необходимости вызова данной процедуры.

Список_аргументов – содержит описания аргументов, которые принимаются процедурой. Описания аргументов разделяются запятой и имеют следующий формат:

[Optional] [ByVal | ByRef] [ParamArray] Имя_аргумента[()] [As Имя_типа] _

[= Значение_по_умолчанию]

Пояснения элементов, используемых в данной конструкции, приведены в табл. 1.7.

Таблица 1.7. Элементы описания аргумента процедуры

Для выхода из процедуры предусмотрена инструкция Exit Sub. При ее достижении выполнение программы немедленно переходит к инструкции, следующей за вызвавшей процедуру инструкцией.
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 24 >>
На страницу:
14 из 24