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

<p>Определение программы</p>

Так что же такое программа? Говоря формально, программа- это цельная, способная функционировать (или неправильно функционировать) совокупность программного кода. Программа должна содержать один или несколько операторов, которые выполняются в порядке, заданном программистом.

Но программа не является официальным объектом VBA. VBA распознает по именам процедуры, модули и проекты, но не программы. Любая VBA-программа обязательно должна содержать хотя бы одну процедуру- просто потому, что VBA может выполнять только операторы, помещенные в процедуры, - но зато программа может управлять двумя или сразу многими процедурами, помещенными в один или несколько модулей из одного или нескольких проектов.

В этой книге в основном речь идет о программах, имеющих дело только с одним проектом. Краткий обзор использования в VBA-программе нескольких проектов вы найдете в главе 14.

<p>Пример программы</p>

Чтобы сделать обсуждение иерархии VBA-элементов немного менее абстрактным, давайте рассмотрим приведенный ниже программный код модуля. Этот модуль содержит все упомянутые выше элементы (за исключением проекта, поскольку модули содержатся в проектах, а не наоборот). После текста модуля идет обсуждение составляющих его элементов.

Думаю, сначала нужно объяснить, что делают в этом примере программы. Сначала создается совокупность (.массив) из шести целых величин, которым приписываются случайные значения от 1 до 1000. Затем после подсчета числа значений, превышающих определенное пороговое значение, а именно значение 500, полученный результат отображается в небольшом диалоговом окне.

Option Explicit

Const Maximum As Integer = 500

Const HowMany As Integer = 5

Dim ListOfNumbers() As Integer

Sub MAIN()

_ Dim ItemsInList, n, x As Integer

_ ReDim ListOfNumbers(HowMany)

_ Randomize

_ For x = 0 To HowMany

ListOfNumbers(x) = int( ( 1000 * Rnd) + 1)

_ Next x

_ n = CountBigNumbers()

_ MsgBox (There were n values greater than _

_ Maximum)

End Sub

Function CountBigNumbers()

_ Dim Counter As Integer, y As Integer

_ Counter = 0

_ For = 0 To HowMany

If ListOfNumbers(y) Maximum Then

Counter = Counter + 1

End If

_ Next у

_ CountBigNumbers = Counter

End Function

Весь этот блок программного кода в своей совокупности представляет собой модуль. Он состоит из ряда операторов, организованных в три раздела. Это раздел объявлений, начинающийся оператором Option Explicit, процедура типа Sub, начинающаяся оператором Sub

MAIN(). и процедура типа Function, начинающаяся оператором Function CountBigNumbers ( ). Большинство операторов этого модуля занимают по одной строке, но оператор в строке, начинающийся с выражения MsgBox, заканчивается в следующей строке.

<p>Иерархия VBA</p>

Теперь, после знакомства с приведенным выше примером программы, вам легче будет понять следующие определения и описания строительных блоков программного кода VBA.

* Оператор - это наименьшая, способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе. У допустимого оператора много сходства с законченным предложением - оператор должен содержать правильный набор частей речи, иначе это не оператор вообще.

* Процедура - это наименьшая единица программного кода, на которую можно ссылаться по имени. Это также наименьшая единица программного кода, которая может выполняться независимо. VBA распознает два главных типа процедур - Sub и Function. Любая процедура содержит один или несколько операторов, помещенных между двумя специальными операторами, - объявлением процедуры в начале и оператором завершения процедуры (End Sub или End Function) в конце.

* Модуль - это именованная единица, состоящая из одной или нескольких процедур, а также объявлений, относящихся ко всем процедурам в модуле. Хотя VBA и допускает размещение всех процедур в одном модуле, имеет смысл разместить процедуры в нескольких модулях в соответствии с выполняемыми этими процедурами задачами, чтобы с ними было проще работать.

Перейти на страницу:

Все книги серии Для чайников

Похожие книги